初级网站架构图示

网站基本架构图示:
仅供参考,这个架构是针对仅有数台服务器的一般应用,门户型应用肯定要复杂的多。

 

 

本图由亿图图示专家 绘制,此绘图软件值得推荐。


 
主要矛盾 
对于高并发的网站系统,最早暴露出来的问题就是数据库瓶颈,超级牛的数据库系统也很快会成为访问速度的瓶颈。所以,欲提高访问速度首先要解决的瓶颈就是数据库访问。策略就是
一、缓存:

1、Squid前端缓存;
2、Memcached后端缓存;
3、创建外部索引文件,如使用Sphinx;

二、数据库服务器阵列:

1、将数据库读写操作分开,分为主从服务器;
2、主从服务器分别按照一定规则设置成阵列;

总之,尽量减少对数据库的请求数量,进一步使用负载均衡,最大程度降低单台服务器的压力。

使用 Nginx 做负载均衡的理由:

  1. 免费使用
  2. 高连接并发,能够支持高达 50,000 个并发连接数的响应
  3. Nginx 采用C进行编写, 内存、CPU开销少
  4. 配置文件简单
  5. 支持url重写,支持GZIP压缩节省带宽
  6. 超级稳定,几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动
  7. 国内已经有多家知名网站使用 Nginx 作为Web服务器或反向代理服务器

详细介绍 
客户端在浏览器地址栏输入域名后,将首先访问最前端的代理服务器,静态文本型文件有此服务器直接返回,这里设置了单独的图片服务器,适合图片非常多的网站。将一部分特定的url代理到后端Squid服务器,Squid服务器根据url地址检查是否有缓存的内容,有则返回给前端服务器,否则再访问后端的php应用,获取内容并缓存以备下次访问。Squid服务器可以是一台,也可以是按一定规则组织的阵列。

PHP应用也可以是一台或者一个阵列,单台服务器的情况比较简单,阵列的话需要考虑客户端session回话的问题,解决的办法有二:

1、阵列服务器共享session回话,如统一使用memcached存储session;
2、前端服务器能判断客户端是属于哪个php服务器处理,并始终将此客户端代理给这个php应用;

比较这两个办法,从可扩展性的角度为长远考虑,第二种办法可能更为妥当。对于首次访问php应用的客户端,采取轮回规则进行负载均衡,php给客户端设置一个cookie方式的标记,再次访问则根据cookie信息链接到先前的php应用上。

比如:设置一个cookie信息host=n,n是一个数字,nginx可以获取客户端的cookie信息字符串,
upstream  backend  {
    server   backend1.example.com       weight=5;
    server   backend2.example.com:8080;
}

if ($http_cookie ~* "host=([^;]+)(?:;|$)" ) {
   proxy_pass http://192.168.0.$1;
} else {
   proxy_pass http://backend;
}

memcached数据缓存、sphinx站内搜索、MySQL主从阵列等使用可以找下相关详细的资料。
以后会有补充。

时间: 2024-12-30 03:44:46

初级网站架构图示的相关文章

服务架构:一步步构建大型网站架构详细介绍

今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告诉我们事物是在发展中不断前 进的,网站架构也是随着业务的扩大.用户的需求不断完善的,下面是一个网站架构逐步发展的基本过程,读完后,请思考,你现在在哪个阶段. 架构演变第一步:物理分离WebServer和数据库 最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假 设这个时候已经是托管了一台主机,并且有一定

大型网站架构演变

之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的.ebay的,都是非常值得参考 的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂 的技术,于是有了写这篇文章的想法,在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给 想从事互联网行业的同学一点初步的概念,:),文中的不对之处也请各位多给点建议,让本文真正起到抛砖引玉的效果.

普通网站发展成大型网站过程网站架构演变

之前也有看过一些介绍大型http://www.aliyun.com/zixun/aggregation/11116.html">网站架构演变的文章,例如LiveJournal的.ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给

【转载】大型网站架构演化

大型网站系统特点 高并发.大流量:PV 量巨大 高可用:7*24 小时不间断服务 海量数据:文件数目分分钟 xxTB 用户分布广泛,网络情况复杂:网络运营商 安全环境恶劣:黑客的攻击 需求快速变更,发布频繁:快速适应市场,满足用户需求 渐进式发展:慢慢地运营出大型网站 大型网站架构演化过程 (1)初始阶段网站架构:一台 Server 就刚需.应用程序.数据库.文件等所有资源都集中在一台 Server 上,典型案例:基于 LAMP 架构的 PHP 网站: (2)应用和数据服务分离:三台 Serve

LNMP网站架构方案分析

LNMP(Linux-Nginx-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Nginx网络服务器,MySQL数据库,PHP编程语言,所有组成产品均是免费开源软件,这四种软件组合到一起,成为一个免费.高效的网站服务系统. Linux.MySQL.PHP这些框架的优点之前已经介绍过,LNMP和LAMP不同的一点就是Web服务器Nginx,那么Nginx相比Apache有什么优点呢? Nginx是一个小巧而高效的Linux下的Web服务器软件,已在一些大型

LAMP网站架构方案分析

LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富.轻量.快速开发等特点,微软的.NET架构相比,LAMP具有通用.跨平台.高性能.低价格的优势,因此LAMP无论是性能.质量还是价格都是企业搭建网站的

ASP.NET多频道网站架构实现方法

各频道分别位于不同的Web Project(具有独立的二级域名),并将所有的业务逻辑以及数据访问功能封装成Class Library,所有频道共用这个Class Library. 下面详细介绍实现方法. 假设网站有三个频道,新闻.论坛以及博客,对应的二级域名为"news"."forum"."blog".除此之外,还需要另外定义两个域名,分别用于网站首页以及用户注册.登陆功能(基于Passport机制,本文后面将作详细介绍),对应域名为"

SEO三难题:网站架构+内容差异+外链高质量

Netconcepts的SEO排行榜大会昨天在京举行,身边的好几个朋友都去参加了这次会议,参加大会的朋友都是抱着学习的态度,学完之后当然会记录和分享,这一次北京SEO胖子就是其中一位,回来之后发博文,他的分享是ZAC关于美丽说的一个案例分析,案例里面谈到了目前SEO行业的状况,也是我非常认同的一个观点,目前的SEO遇到三个难题:怎么样进行网站架构,如何建设独特的网站内容,网站高质量外链哪里来. 下面是胖子SEO博客关于美丽说SEO独特之处的分析,也是从这三个难题出发谈到的一些看法,网站有很多独特

从网站架构看淘鞋网布局seo的方式(二)

写过一篇"从网站架构看淘鞋网布局seo的方式(1)",是应该再写第二篇,那么我们继续关注淘鞋网的网站结构和seo之间的关系,淘鞋网让我们学习的seo细节以及设置方面还是很让我们学习的,以下就是下午的思考了. 4)淘鞋网"锚文本"特色 现在在鞋类电子商务市场中,有淘鞋网,拍鞋网,乐淘,好乐买,等等的电子商务平台,可见竞争之大,那么这一点呢,淘鞋网也为了和他们的同类竞争对手比较排名,甚至品牌的关键字排名,用对方的品牌词链接回到自己的首页,如图所示就是笔者在首页中发现的友