【小镇的技术天梯】lanmp服务器集群搭建(1)nginx的反向代理
2016-04-05 21:11
531 查看
小镇为了研究这个lanmp服务器集群的搭建拖沓了一个星期,难度到没什么,但是硬件的条件非常麻烦。电脑上跑了n个虚拟机,小镇今天换了一块480g的ssd终于是把几个虚拟机顺畅的跑起来了。公司的服务器如果有条件的话我想弄个服务器集群,不过那些烂摊子后台应用实在太难重新部署了。。。
先给大家普及一下lanmp是个什么东西,l代表的是linux系统,a代表的是apache web服务器,n代表的是nginx web服务器,m代表是mysql数据库,p是php解释器。
今天先讲集群的第一步:nginx做反向代理。
很多人一直在纠结是使用nginx服务器还是apache服务器,其实nginx和apache各有优缺点,nginx的优点能抗高并发,对静态文件的响应速度可以达到apache的几十倍(以后小镇会介绍nginx网页静态化等方面的技术)并且nginx具有7层负载均衡的功能,能够从最底层将流量分流。Apache服务器的优点在于,恩。。。。稳定。。。性能是完全比不上nginx,但是apache的模块超多,功能丰富,这就够了。企业技术最需要的就是稳定,性能好,跑个一两天就挂机那就不行了。。
我们这里用一台服务器装上nginx用做负载均衡和静态文件响应(nginx就是前端机,所有的请求的流量要先经过nginx),所有的html文件直接用nginx响应返回,所有的php动态请求全部用nginx自带的负载均衡功能反向代理给后端的apache服务器让apache处理完再返回给nginx服务器。
首先,小镇准备三个环境,所有的物理机的操作系统为centos,nginx服务器为192.168.1.101,两台apache服务器分别为192.168.1.102和192.168.1.103。如下图所示:
坏境的搭建我过两天详细的阐述吧,不在这个文章过多的赘述了。然后在nginx的web根目录下建立一个文件,为index.html作为静态文件的示范,内容随便写点东西。在两个apache的web根目录下面建立test.php,内容分别为echo server 192.168.1.101和echo server 192.168.1.102用来区分两台不同的服务器。如下图所示:
然后关键的来了,在nginx的配置文件中定义反向流的定义。如下图所示:
在http模块中加入upstream模块指定两个apache服务器的地址,第二步,加入server模块中:如下图所示:
location ~ [^/]\.php(/|$)表示接受到php的请求时做相应的事情,这里就是反向代理给我刚刚定义的两个服务器。
最后我们来实验一下,首先输入192.168.1.101检验静态文件的返回是否是正常的,如下图所示:
然后输入192.168.1.101/test.php检测负载均衡的功能是否有实现:如下图所示:
大家可以看到确实是在两台apache的服务器之间进行了切换和流量均衡。
lanmp集群的第一步就完成了,后面还要考虑集群的服务器之间的内容和文件的同步,这个下篇文章再讲,小镇最近项目多比较忙。。。能写多少写多少。
先给大家普及一下lanmp是个什么东西,l代表的是linux系统,a代表的是apache web服务器,n代表的是nginx web服务器,m代表是mysql数据库,p是php解释器。
今天先讲集群的第一步:nginx做反向代理。
很多人一直在纠结是使用nginx服务器还是apache服务器,其实nginx和apache各有优缺点,nginx的优点能抗高并发,对静态文件的响应速度可以达到apache的几十倍(以后小镇会介绍nginx网页静态化等方面的技术)并且nginx具有7层负载均衡的功能,能够从最底层将流量分流。Apache服务器的优点在于,恩。。。。稳定。。。性能是完全比不上nginx,但是apache的模块超多,功能丰富,这就够了。企业技术最需要的就是稳定,性能好,跑个一两天就挂机那就不行了。。
我们这里用一台服务器装上nginx用做负载均衡和静态文件响应(nginx就是前端机,所有的请求的流量要先经过nginx),所有的html文件直接用nginx响应返回,所有的php动态请求全部用nginx自带的负载均衡功能反向代理给后端的apache服务器让apache处理完再返回给nginx服务器。
首先,小镇准备三个环境,所有的物理机的操作系统为centos,nginx服务器为192.168.1.101,两台apache服务器分别为192.168.1.102和192.168.1.103。如下图所示:
坏境的搭建我过两天详细的阐述吧,不在这个文章过多的赘述了。然后在nginx的web根目录下建立一个文件,为index.html作为静态文件的示范,内容随便写点东西。在两个apache的web根目录下面建立test.php,内容分别为echo server 192.168.1.101和echo server 192.168.1.102用来区分两台不同的服务器。如下图所示:
然后关键的来了,在nginx的配置文件中定义反向流的定义。如下图所示:
在http模块中加入upstream模块指定两个apache服务器的地址,第二步,加入server模块中:如下图所示:
location ~ [^/]\.php(/|$)表示接受到php的请求时做相应的事情,这里就是反向代理给我刚刚定义的两个服务器。
最后我们来实验一下,首先输入192.168.1.101检验静态文件的返回是否是正常的,如下图所示:
然后输入192.168.1.101/test.php检测负载均衡的功能是否有实现:如下图所示:
大家可以看到确实是在两台apache的服务器之间进行了切换和流量均衡。
lanmp集群的第一步就完成了,后面还要考虑集群的服务器之间的内容和文件的同步,这个下篇文章再讲,小镇最近项目多比较忙。。。能写多少写多少。
相关文章推荐
- Nginx反向代理
- nginx反向代理substitutions4nginx模块实现替换字符盗站 nginx.conf配置
- Use Squid+Stunnel+SwitchyOmega to Setup a Safe Proxy
- CentOS中nginx负载均衡和反向代理的搭建
- 反向代理分离资源服务器分析
- 使用nginx反向代理tomcat服务
- 正向代理,反向代理和透明代理
- nginx服务器反向代理tomcat
- Linux下squid普通代理步骤
- Nginx反向代理配置文件
- Nginx的反向代理实验
- 正向代理与反向代理的区别【Nginx读书笔记】
- 关于大型网站技术演进的思考(十八)--网站静态化处理—反向代理(10)
- 一张图告诉你什么叫正向代理,什么叫反向代理
- squid代理服务器的安装和配置
- squid源码分析4—coss存储机制分析
- squid源码分析3—purge流程分析
- squid源码分析2—refresh_pattern机制分析
- 在反向代理中添加例外
- squid.conf.txt