Ngnix的反向代理,url重定向,负载均衡的实现

环境:centos-6.4-x86_64html

软件:nginx-1.0.11healthcheck_nginx_upstreams-master前端

拓扑图:nginx

wKioL1LkUZfxMJefAABdU5oyxDU622.jpg

Ip地址规划:web

反向代理服务器链接外网的地址:192.168.1.118,链接内网的地址:192.168.29.20shell

Server1的地址:192.168.29.200 centos

server2的地址:192.169.29.201缓存

解压healthcheck_nginx_upstreams-mastertmp目录,而后安装nginx服务器

解压nginx,而后切换到解压后的目录执行负载均衡

patch -p1</tmp/healthcheck_nginx_upstreams-master/ nginx.patchnginx打上补丁,而后执行ide

./configure \

                             --conf-path=/etc/nginx/nginx.conf \

                            --error-log-path=/var/log/nginx/error.log \

                             --http-log-path=/var/log/nginx/access.log \

                             --pid-path=/var/run/nginx/nginx.pid \

                             --lock-path=/var/lock/nginx.lock \

                             --user=nginx \

                            --group=nginx \

                             --with-http_ssl_module \

                             --with-http_flv_module \

                             --with-http_stub_status_module \

                             --with-http_gzip_static_module \

                            --http-client-body-temp-path=/var/tmp/nginx/client/ \

                            --http-proxy-temp-path=/var/tmp/nginx/proxy/ \

                             --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/\

                             --with-pcre

                 --add-module=/tmp/ healthcheck_nginx_upstreams-master/

完成以后执行make&& make install,完成后建立nginx组和nginx用户

groupadd -r nginx  

useradd -r -g nginx -s /sbin/nologin -Mnginx

/etc/init.d/目录下编写一个名为nginxshell脚本,给以可执行权限

nginx添加到chkconfig 管理 chkconfig --add nginx

到这里nginx的安装就完成了。

接下来先介绍nginx重定向的实现。

若是想实现访问跟站点下的图片文件时,重定向到一个页面,编辑nginx的配置文件

wKiom1LkUc_xmwsoAABZ9ojDGRs683.jpg

而后测试

wKioL1LkUbey_esqAAEb6e7wFww465.jpg

被重定向到index.html页面上了。

若是访问某台服务器上某个目录下的某个文件被重定向到另外一台服务器上的想对应的目录下的文件。

在这里咱们另外一台服务器的ip地址为192.168.29.200 在这台服务器的跟站点目录下有abc目录和def目录,在这两个目录中都有两个jpg文件。

wKiom1LkUeTz1JcnAACPWLMfa8s052.jpg

当咱们访问192.168.29.20/abc/1.jpg时会被重定向到http://192.168.29.200/abc/1.jpg

访问wKioL1LkUc3TrHWYAAAqWPsa4K0547.jpg

访问成功后

wKiom1LkUfzCCEytAAGlm9_UByM031.jpg

接下来介绍反向代理。经过反向代理能够是内网中的服务器提供给外部用户使用。

wKioL1LkUeHD1FRSAABsDC1EuCI766.jpg

192.168.29.200服务器的web跟站点下有一个index.html文件,在这个文件里面有“hello

访问结果以下:

wKiom1LkUg6gQLIZAACFu4h6Ies448.jpg

从图中能够看出已经访问成功。

为反向代理增长缓

语法:  proxy_cache_path path [levels=levels]keys_zone=name:size [inactive=time] [max_size=size] [loader_files=number][loader_sleep=time] [loader_threshold=time];

先用压力测试测试一下在没有缓存的状况下访问速度

wKioL1LkUf6Rw4wMAACdYnBTDpE351.jpg

接下来作缓存


wKioL1LkUhKz5SKnAAERdh18ZQM794.jpgwKiom1LkUkfQ3pGBAAD6e59qrCw898.jpg

设置完成后,先进行一次访问,产生缓存,而后进行压力测试

wKioL1LkUk6w7aL-AAG9NDsGMP0960.jpg

接下来介绍nginx负载均衡和健康检测

nginx的配置文件中添加以下图内容,在全局中用upstream指定服务器的地址,而后在location中引用

wKiom1LkUoOAyas1AADemZb9MkM111.jpg

wKioL1LkUmCSOxi0AAA3CgfVO2Y938.jpg

作完这些就能够实现负载均衡,可是当其中一台服务器出现故障是,前端反向代理服务器仍然会继续向故障服务器发送数据,这样会致使一些用户没法访问,所以要在反向代理服务器上实现健康检测,当服务器出现故障时再也不向故障服务器发送数据,因此咱们还要在nginx的配置文件中启用健康检测,而且在两个服务器的站点根目录下建立一health页面,内容随便写就能够。

wKiom1LkUpDiECMRAAFF_LiNgeQ484.jpg

wKioL1LkX2vw4EkOAAA2c0e-mjE743.jpg

那咱们来测试一下,在两台服务器上分别有内容为“hello”的html页面和“helloword”的html页面

wKioL1LkUoPCUkRNAACUFCpHuRw498.jpg

wKiom1LkUqfzxfO9AACc5J9-_o4153.jpg

从图中看均可以访问到,假如咱们的192.168.29.201服务器坏掉了,咱们能够看到状态

wKiom1Lkas7A41KBAAFdKEpmUpY826.jpg

相关文章
相关标签/搜索