一、Nginx + Apache 通過反向代理實現負載均衡


一、Nginx簡單介紹

Nginx是一種服務器軟件,也是一種高性能的http和反向代理服務器,同時還是一個代理郵件服務器。也就是說,我們在Nginx上可以發佈網站,可以實現負載均衡(提高應答效率,避免服務器崩潰),還可以作爲郵件服務器實現收發郵件等功能。而最常見的就是使用Nginx實現負載均衡。  

 

Nginx反向代理的過程:

 

用戶A始終認爲它訪問的是原始服務器B而不是代理服務器Z,但實用際上反向代理服務器接受用戶A的應答,從原始資源服務器B中取得用戶A的需求資源,然後發送給用戶A。由於防火牆的作用,只允許代理服務器Z訪問原始資源服務器B。儘管在這個虛擬的環境下,防火牆和反向代理的共同作用保護了原始資源服務器B,但用戶A並不知情。 

Nginx負載均衡的過程會自動選擇壓力較小的服務器進行訪問):

 

Nginx的應用

1、到官網下載Windows版本,下載地址:http://nginx.org/en/download.html

2、解壓到磁盤任一目錄

3、修改配置文件:具體參考備註。

4、啓動服務:

直接運行nginx.exe,缺點控制檯窗口關閉,服務關閉。

守護進程的方式啓動:start nginx.exe

停止服務:nginx -s stop

重新加載配置:nginx -s  reload

 

最簡單的配置實例(conf/nginx.conf):

worker_processes  1;    #工作進程數

events {

    worker_connections  1024;   #設置單個進程最大連接數

}

http {      

include       mime.types; #文件擴展名與文件類型映射表  

default_type  application/octet-stream;#默認文件類型  

sendfile        on;

keepalive_timeout  65; #長連接超時時間,單位是秒  

#主要是用於設置一組可以在proxy_passfastcgi_pass指令中使用額代理服務器,默認負載均衡方式爲輪詢

upstream  cloudtest.com {

#weight權重,默認1,權重越大訪問概率越大,backup備用服務器,服務器全部崩潰後啓動

   server   127.0.0.1:8081   weight=2;

#server   127.0.0.1:8082   backup;

server   127.0.0.1:8080   weight=3;

}

server {

        listen       80;

        server_name  localhost;

location / {

            proxy_pass http://cloudtest.com;

            proxy_redirect default;

    }

}

 

二、Tomcat的準備工作

首先,由於我是在一臺機器用Nginx + Tomcat,所以我需要修改tomcat配置,使Windows可以運行多臺tomcat

只需要修改三個端口號(還未被使用的端口號)就可以了:

<Server port="8007" shutdown="SHUTDOWN"></Server>

<Connector port="8082" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />

 

三、運行結果

1、修改上面兩個Tomcat的默認頁面(爲了區分下面到底訪問的是那一臺Tomcat,隨便改一下即可)

2、啓動自己配置好的Tomcat

3、切換到自己Nginx解壓目錄:start nginx

結果如下:

第一次訪問,發現訪問的是Tomcat1上的程序:

 

然後刷新幾次,會交替訪問Tomcat2和Tomcat1的程序:

 

四、總結

  誰能想到實現一個高性能的負載均衡集羣會如此簡單。Nginx的功能如此強大,配置卻如此簡單,我們還有什麼理由拒絕它呢?這比我們動不動就十多萬至幾十萬人民幣的F5 BIG-IP、NetScaler等硬件負載均衡交換機廉價了不知多少。此外,大家別忘了Nginx不僅僅是一個反向代理服務器,它本身也可以託管網站,作爲Web服務器,進行Http服務處理。

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章