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

相關文章
相關標籤/搜索