‘壹’ 网站的基本架构是什么
网站架构按照制作步骤分为硬架构和软架构。
一、硬架构
1、机房:在选择机房的时候,根据网站用户的地域分布,可以选择网通、电信等单机房或双机房。
2、带宽:预估网站每天的访问量,根据访问量选择合适的带宽,计算带宽大小主要涉及峰值流量和页面大小两个指标。
3、服务器:选择需要的服务器,如图片服务器,页面服务器,数据库服务器,应用服务器,日志服务器,对于访问量大点的网站而言,分离单独的图片服务器和页面服务器相当必要。
二、软架构
1、网站的框架:现在的PHP框架有很多选择,比如:CakePHP,Symfony,Zend Framework,根据创作团队对各个框架熟悉程度选择。
2、逻辑的分层
1)表现层:所有和表现相关的逻辑都应该被纳入表现层的范畴。
2)应用层:主要作用是定义用户可以做什么,并把操作结果反馈给表现层。
3)领域层:包含领域逻辑的层,就是告诉用户具体的操作流程的。
4)持久层:即数据库,保存领域模型保存到数据库,包含网站的架构和逻辑关系等。
(1)网站结构是怎么回事扩展阅读
网站的分类
1、根据网站所用编程语言分类:例如asp网站、php网站、jsp网站、Asp. net网站等;
2、根据网站的用途分类:例如门户网站(综合网站)、行业网站、娱乐网站等;
3、根据网站的功能分类:例如单一网站(企业网站)、多功能网站(网络商城)等等。
4、根据网站的持有者分类:例如个人网站、商业网站、政府网站、教育网站等。
5、根据网站的商业目的分类:营利型网站(行业网站、论坛)、非营利性型网站(企业网站、政府网站、教育网站)。
‘贰’ 网站结构主要包括哪些方面
一个网页的组成,页面框架+美工+程序+数据库。
页面框架:也就是网站的结构设计,包括了UI和LOGO等,总体来说是为了方便用户操作记性的界面,效果,已经页仔源面的流程进行的设计。
美工:要求会厅或的最基本的几个软件PHOTOSHOP,FLASH,FIREWORKS ,一般网站设计用PS比较多。
程序:要求会的语言很多,包括客户端的脚念伏态本语言和服务端的语言,客户端语言包含HTML,JAVASCRIPT,VBSCRIPT,服务端语言包括,ASP,JSP,PHP,.net等等。 数据库方面:用的数据库也许有很多种,我见过有用ACCESS的,也有SQLSERVER的,还有DB2,ORECLE等等。一般对于网站来说如果不是象银行这样的大规模数据交换,SQLSERVER已经足以。
‘叁’ 网站的结构都有什么
网站的目录结构
网站的目录是指在创建网站时建立的目录,我们要根据网站的主题和内容来分类规划,不同的栏目要对应不同的目录,在各个栏目目录下我们也要根据内容的不同对其划分不同的分目录,比如说页面图片放到images目录下,新闻放到news目录下,数据库放到database目录下等等。同时要注意目录的的层次不宜太深,一般不要超过三层,另外给目录起名的时候要尽量使用能表达目录内容的英文或汉语拼音,这样会更加方便日后的管理维护。
网页的构成和布局
不同主题的网站对网页内容的安排会有所不同,但大多数网站首页的页面结构都会包括页面标题、网站LOGO、导航栏、登录区、搜索租轮区、热点推荐区、主内容区和页脚区(如图),其他页面不需要设置如此复杂了,一般由页面标题、网站LOGO、导航栏、主内容区和页脚区等构成。
搞网站设计不是把所有内容放置到网页中就行了,还需要我们把网页内容进行合理的排版布局,以给浏览返咐者赏心悦目的感觉,增强网站的吸引力。在设计布局的时候我们要注意把文字、图片在网页空间上均匀分布并且不同形状、色彩的网页元素要相互对比,以形成鲜明的视觉效果。我们常见的布局结构有
“同”字形布局、“国”字形布局、“匡”字形布局、“三”字形布局和“川”字形布局等。
1.
“同”字形布局:所谓“同”字形结构,就是整个页面布局类似“同”字,页面顶部是主导航栏,下面左右两侧是二级导航条、登录区、搜索区等,中间是主内容区,如http://www.china-channel.com。
2.
“国”字形布局:它是在“同”字形布局上演化而来的,它在保留“同”字形的同时,在页面的下方增加一横条状的菜单或广告,如http://www.yesky.com。
3.
“匡”字形布局:这种布局结构去掉了“国”字形布局的右边的边框部分,给主内容区释放了更多空间,内容虽看起来比较多,但布局整齐又不过于拥挤,适合一些下载类和贺卡类站点使用,如http://nj.onlinedown.net。
4.
“三”字形布局:一般应用在简洁弊世信明快的艺术性网页布局,这种布局一般采用简单的图片和线条代替拥挤的文字,给浏览者以强烈的视觉冲击,如http://www.cphoto.com.cn。
5.
“川”字形布局:整个页面在垂直方向分为三列,网站的内容按栏目分布在这三列中,最大限度地突出主页的索引功能,一般适用在栏目较多的网站里,如http://www.ezIT.com.cn。
‘肆’ 什么是网站架构
网站架构,一般认为是根据客户需求分析的结果,准确定位网站目标群体,设定网站整体架构,规划、设计网站栏目及其内容,制定网站开发流程及顺序,以最大限度地进行高效资源分配与管理的设计。其内容有程序架构,呈现架构,和信息架构三种表现。而步骤主要分为硬架构和软架构两步程序。网络架构是现代网络学习和发展的一个必须的基础技术。
中文名
网站架构
一般认为
根据客户需求分析的结果
制定
网站开发流程及顺序
内容
程序架构,呈现架构
快速
导航
软架构八个方案
硬架构
机房的选择
在选择机房的时候,根据网站用户的地域分布,可以选择网通或电信机房,但更多时候,可能双线机房才是合适的。越大的城市,机房价格越贵,从成本的角度看可以在一些中小城市托管服务器,比如说北京的公司可以考虑把服务器托管在天津,廊坊等地,不是特别远,但是价格会便宜很多。
带宽的大小
通常老板花钱请我们架构网站的时候,会给我们提出一些目标,诸如网站每天要能承受100万PV的访问量等等。这时我们要预算一下大概需要多大的带宽,计算带宽大小主要涉及两个指标(峰值流量和页面大小),我们不妨在计算前先做出必要的假设:
第一:假设峰值流量是平均流量的5倍。
第二:假设每次访问平均的页面大小是100K字节左右。
如果100万PV的访问量在一天内平均分布的话,折合到每秒大约12次访问,如果按平均每次访问页面的大小是100K字节左右计算的话,这12次访问总计大约就是1200K字节,字节的单位是Byte,而带宽的单位是bit,它们之间的关系是1Byte = 8bit,所以1200K Byte大致就相当于9600K bit,也就是9Mbps的样子,实际情况中,我们的网站必须能在峰值流量时保持正常访问,所以按照假设的峰值流量算,真实带宽的需求应该在45Mbps 左右。
当然,这个结论是建立在前面提到的两点假设的基础上,如果你的实际情况和这两点假设有出入,那么结果也会有差别。
服务器的划分
先看我们都需要哪些服务器:图片服务器,页面服务器,数据库服务器,应用服务器,日志服务器等等。
对于访问量大点的网站而言,分离单独的图片服务器和页面服务器相当必要,我们可以用lighttpd来跑图片服务器,用apache来跑页面服务器,当然也可以选择别的,甚至,我们可以扩展成很多台图片服务器和很多台页面服务器,并设置相关域名,如img.domain和 www.domain,页面里的图片路径都使用绝对路径,如<img src="http://img.domain/abc.gif" />,然后设置DNS轮循,达到最初级的负载均衡。当然,服务器多了就不可避免的涉及一个同步的问题,这个可以使用rsync软件来搞定。
数据库服务器是重中之重,因为网站的瓶颈问题十有八九是出在数据库身上。一般的中小网站多使用MySQL数据库,不过它的集群功能似乎还没有达到stable的阶段,所以这里不做评价。一般而言,使用MySQL数据库的时候,我们应该搞一个主从(一主多从)结构,主数据库服务器使用innodb表结构,从数据服务器使用myisam表结构,充分发挥它们各自的优势,而且这样的主从结构分离了读写操作,降低了读操作的压力,甚至我们还可以设定一个专门的从服务器做备份服务器,方便备份。不然如果你只有一台主服务器,在大数据量的情况下,mysqlmp基本就没戏了,直接拷贝数据文件的话,还得先停止数据库服务再拷贝,否则备份文件会出错。但对于很多网站而言,即使数据库服务仅停止了一秒也是不可接受的。如果你有了一台从数据库服务器,在备份数据的时候,可以先停止服务(slave stop)再备份,再启动服务(slave start)后从服务器会自动从主服务器同步数据,一切都没有影响。但是主从结构也是有致命缺点的,那就是主从结构只是降低了读操作的压力,却不能降低写操作的压力。
为了适应更大的规模,可能只剩下最后这招了:横向/纵向分割数据库。所谓横向分割数据库,就是把不同的表保存到不同的数据库服务器上,比如说 用户表保存在A数据库服务器上,文章表保存在B数据库服务器上,当然这样的分割是有代价的,最基本的就是你没法进行LEFT JOIN之类的操作了。所谓纵向分割数据库,一般是指按照用户标识(user_id)等来划分数据存储的服务器,比如说:我们有5台数据库服务器,那么 “user_id % 5 + 1”等于1的就保存到1号服务器,等于2的就保存到2号服务器,以此类推,纵向分隔的原则有很多种,可以视情况选择。不过和横向分割数据库一样,纵向分割数据库也是有代价的,最基本的就是我们在进行如COUNT, SUM等汇总操作的时候会麻烦很多。综上所述,数据库服务器的解决方案一般视情况往往是一个混合的方案,以其发挥各种方案的优势,有时候还需要借助memcached之类的第三方软件,以便适应更大访问量的要求。
如果有专门的应用服务器来跑PHP脚本是最合适不过的了,那样我们的页面服务器只保存静态页面就可以了,可以给应用服务器设置一些诸如app.domain之类的域名来和页面服务器加以区别。对于应用服务器,我还是更倾向于使用prefork模式的apache,配上必要的xcache之类的PHP缓存软件,加载模块要越少越好,除了mod_rewrite等必要的模块,不必要的东西统统舍弃,尽量减少httpd进程的内存消耗,而那些图片服务器,页面服务器等静态内容就可以使用lighttpd或者tux来搞,充分发挥各种服务器的特点。
如果条件允许,独立的日志服务器也是必要的,一般小网站的做法都是把页面服务器和日志服务器合二为一了,在凌晨访问量不大的时候cron运行前一天的日志计算,不过如果你使用awstats之类的日志分析软件,对于百万级访问量而言,即使按天归档,也会消耗很多时间和服务器资源去计算,所以分离单独的日志服务器还是有好处的,这样不会影响正式服务器的工作状态。
软架构
框架的选择
PHP框架有很多选择,比如:CakePHP,Symfony,Zend Framework等等,至于应该使用哪一个并没有唯一的答案,要根据Team里团队成员对各个框架的了解程度而定。很多时候,即使没有使用框架,一样能 写出好的程序来,比如Flickr据说就是用Pear+Smarty这样的类库写出来的,所以,是否用框架,用什么框架,一般不是最重要的,重要的是我们 的编程思想里要有框架的意识。
逻辑的分层