【小镇的技术天梯】lanmp服务器集群搭建(1)nginx的反向代理

小镇为了研究这个lanmp服务器集群的搭建拖沓了一个星期,难度到没什么,但是硬件的条件非常麻烦。电脑上跑了n个虚拟机,小镇今天换了一块480g的ssd终于是把几个虚拟机顺畅的跑起来了。公司的服务器如果有条件的话我想弄个服务器集群,不过那些烂摊子后台应用实在太难重新部署了。。。
先给大家普及一下lanmp是个什么东西,l代表的是linux系统,a代表的是apache web服务器,n代表的是nginx web服务器,m代表是mysql数据库,p是php解释器。
今天先讲集群的第一步:nginx做反向代理。
【【小镇的技术天梯】lanmp服务器集群搭建(1)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。如下图所示:
【小镇的技术天梯】lanmp服务器集群搭建(1)nginx的反向代理
文章图片


坏境的搭建我过两天详细的阐述吧,不在这个文章过多的赘述了。然后在nginx的web根目录下建立一个文件,为index.html作为静态文件的示范,内容随便写点东西。在两个apache的web根目录下面建立test.php,内容分别为echo server 192.168.1.101和echo server 192.168.1.102用来区分两台不同的服务器。如下图所示:
【小镇的技术天梯】lanmp服务器集群搭建(1)nginx的反向代理
文章图片


然后关键的来了,在nginx的配置文件中定义反向流的定义。如下图所示:
【小镇的技术天梯】lanmp服务器集群搭建(1)nginx的反向代理
文章图片


在http模块中加入upstream模块指定两个apache服务器的地址,第二步,加入server模块中:如下图所示:
【小镇的技术天梯】lanmp服务器集群搭建(1)nginx的反向代理
文章图片


location ~ [^/]\.php(/|$)表示接受到php的请求时做相应的事情,这里就是反向代理给我刚刚定义的两个服务器。
最后我们来实验一下,首先输入192.168.1.101检验静态文件的返回是否是正常的,如下图所示:
【小镇的技术天梯】lanmp服务器集群搭建(1)nginx的反向代理
文章图片


然后输入192.168.1.101/test.php检测负载均衡的功能是否有实现:如下图所示:
【小镇的技术天梯】lanmp服务器集群搭建(1)nginx的反向代理
文章图片


【小镇的技术天梯】lanmp服务器集群搭建(1)nginx的反向代理
文章图片


大家可以看到确实是在两台apache的服务器之间进行了切换和流量均衡。
lanmp集群的第一步就完成了,后面还要考虑集群的服务器之间的内容和文件的同步,这个下篇文章再讲,小镇最近项目多比较忙。。。能写多少写多少。

    推荐阅读