初级网站架构图示

初级网站架构图示

原创内容欢迎转载,请注明出处:http://dushii.blog.163.com/blog/static/17305193200883044111183/

网站基本架构图示:

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

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

主要矛盾

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

一、缓存:

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-11-05 14:48:24

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

分享JAVA从初级程序员到架构师视频,文档,架构设计,大型网站架构分析,大数据分析资料

JAVA从初级程序员到架构师视频,文档,架构设计,大型网站架构分析,大数据分析资料, 搭建高并发.高可用电商架构设计资料需要的联系我.很多目录都没列出来(QQ空间相册里有很多目录的截图)加QQ:1927360914

java架构师、高性能、高并发、高可用、高可扩展、性能优化、集群、电商网站架构

15套java架构师.集群.高可用.高可扩展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布式项目实战视频教程 视频课程内容包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.ZeroMQ.Git.Nosql.Jvm.Mecached.Netty.Nio.Mina.性能调优.高并发.to

(转)大型网站架构系列:电商网站架构案例(1)

大型网站架构是一个系列文档,欢迎大家关注.本次分享主题:电商网站架构案例.从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型.除具备功能需求外,还具备一定的高性能,高可用,可伸缩,可扩展等非功能质量需求(架构目标). 根据实际需要,进行改造,扩展,支持千万PV,是没问题的. 本次分享大纲 电商案例的原因 电商网站需求 网站初级架构 系统容量估算 网站架构分析 网站架构优化 架构总结 电商网站案例,一共有三篇本篇主要说明网站的需求,网站初始架构,系统容量估算方法. 一.电商

一步步构建大型网站架构

原文转自:http://kb.cnblogs.com/page/99549/ 之前我简单向大家介绍了各个知名大型网站的架构,MySpace的五个里程碑.Flickr的架构.YouTube的架构.PlentyOfFish的架构.WikiPedia的架构.这几个都很典型,我们可以从中获取很多有关网站架构方面的知识,看了之后你会发现你原来的想法很可能是狭隘的. 今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告诉我们事物是在发展中不断前进的

一步步构建大型网站架构(转)

之前我简单向大家介绍了各个知名大型网站的架构,MySpace的五个里程碑.Flickr的架构.YouTube的架构.PlentyOfFish的架构.WikiPedia的架构.这几个都很典型,我们可以从中获取很多有关网站架构方面的知识,看了之后你会发现你原来的想法很可能是狭隘的. 今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告诉我们事物是在发展中不断前进的,网站架构也是随着业务的扩大.用户的需求不断完善的,下面是一个网站架构逐步发展

网站架构转帖

http://oldboy.blog.51cto.com/2561410/736710  高并发访问的核心原则其实就一句话"把所有的用户访问请求都尽量往前推". 如果把来访用户比作来犯的"敌人",我们一定要把他们挡在800里地以外,即不能让他们的请求一下打到我们的指挥部(指挥部就是数据库及分布式存储). 如:能缓存在用户电脑本地的,就不要让他去访问CDN. 能缓存CDN服务器上的,就不要让CDN去访问源(静态服务器)了.能访问静态服务器的,就不要去访问动态服务器.以

[转]大型网站架构的优化与架构演变(整理)

=============大型网站架构的优化===================== 一个小型的网站,比如个人 网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简 单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬 件到软件.编程语言.数据库.WebServer.防火墙等各个领域都有了很高的要求,已经不是原来简

大型网站架构演变和知识体系

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

大型网站架构系列:电商网站架构案例(1)

大型网站架构是一个系列文档,欢迎大家关注.本次分享主题:电商网站架构案例.从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型.除具备功能需求外,还具备一定的高性能,高可用,可伸缩,可扩展等非功能质量需求(架构目标). 根据实际需要,进行改造,扩展,支持千万PV,是没问题的. 本次分享大纲 电商案例的原因 电商网站需求 网站初级架构 系统容量估算 网站架构分析 网站架构优化 架构总结 电商网站案例,一共有三篇本篇主要说明网站的需求,网站初始架构,系统容量估算方法. 一.电商