Nginx反向代理+负载均衡+健康探测+缓存

正向代理是一个位于内网客户端和外网原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标,然后由代理服务器向原始服务器转交请求并将获得的内容返回给客户端。正向代理一般用在为防火墙内的局域网客户端提供Internet访问。透明代理还允许客户端通过它访问任意网站并且隐藏自身的代理服务器身份。

反向代理则是提供外部网络访问内部服务器资源的一种手段,对于外部网络客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间中的内容发送普通请求,反向代理将判断向何处转交请求,在下面这个例子中就是nginx向后方的lamp转交,并将获得的内容返回给客户端。反向代理一般用在将防火墙后面的服务器资源提供给Internet用户访问。而且反向代理对外都是透明的,访问者并不知道其访问的是一个代理。

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

由于apache具有良好的稳定性,但不能提供大量的连接并发请求;而nginx能够提供强大的连接并发请求而没有很好的稳定性,结合这两种截然不同的特征,可以在内网的前端使用nginx作为反向代理服务器,后方的apache作为原始服务器,这样既满足大量的连接并发请求,也具有良好的稳定性,当然,前端应该使用多台nginx反向代理,由于是实验环境,这里就使用一台作为演示,具体的拓扑示意图如下:

Nginx反向代理+负载均衡+健康探测+缓存

相关阅读:

一、nginx反向代理

nginx作为一个代理服务器,至少需要两块网卡来同时连接外网和内网

Nginx反向代理+负载均衡+健康探测+缓存

网卡设置好之后就要安装nginx了,具体的安装步骤参考《linux下实现lnmp环境》中的第二步“安装nginx”,这里不再列出详细的安装过程了。安装完成之后修改/etc/nginx/nginx.conf文件

Nginx反向代理+负载均衡+健康探测+缓存

Nginx反向代理+负载均衡+健康探测+缓存

前端nginx代理的工作完成之后就要搭建后方的lamp环境了,搭建lamp环境不是这篇文章的重点,所以过程我这也不再列出来了,参考《lamp环境搭建--源码安装 》。lamp环境完成之后在Server1上新建一个默认页面。

Nginx反向代理+负载均衡+健康探测+缓存

Nginx反向代理+负载均衡+健康探测+缓存

然后用外网的一台主机访问代理服务器测试一下:

Nginx反向代理+负载均衡+健康探测+缓存

虽然实现了反向代理的功能,但不能满足大量的连接并发请求,因为在nginx接受到客户端的询问后依然是从后方的服务器中请求数据,其满足的并发连接请求量依然受apache的制约,甚至说多了一个向后查询的过程,其效率还不如没有这个代理,可以把apache装起来,用其自带的压力测试工具ab测试一下:

Nginx反向代理+负载均衡+健康探测+缓存

[root@server1 ~]# ab -c 100 -n 10000 http://172.16.10.100/test.jpg

Nginx反向代理+负载均衡+健康探测+缓存

直接向后方请求数据时可以满足的请求为每秒2241.49个

[root@server1 ~]# ab -c 100 -n 10000 http://202.196.10.123/test.jpg

Nginx反向代理+负载均衡+健康探测+缓存

而通过前端nginx反向代理服务器之后能满足的请求不增反减,这就需要nginx有本地缓存的支持了

相关推荐