首先準備3臺機器(固然是vm虛擬機),一臺用來作負載均衡服務器,2臺web服務,分別都安裝上nginx,怎麼安裝nginx這裏就不在敘述。 html
IP規劃 => 負載均衡服務器:10.1.1.10 | web-1:10.1.1.11 | web-2:10.1.1.12 nginx
另外爲了測試的順利請在以前先把3臺機器的防火牆都關掉,把web-1和web-2的index.html改爲不一樣內容(好比本機IP)後面訪問的時候好看效果。 web
如下配置均在 nginx.conf中進行 瀏覽器
upstream webservers { //upstream實現負載均衡
server 10.1.1.11 weight=1;
server 10.1.1.12 weight=1;
}
注:upstream配置應在http內,server外,webservers這是個標識,由本身定義,供後續使用。weigth:權重 ,值越大,被重定向到的概率越大 服務器
location / { #proxy實現反向代理
proxy_pass http://webservers; #這裏的webservers就是上面定義的,將請求轉發到上面upstream中配置的ip上
proxy_set_header X-Real-IP $remote_addr; #將請求源ip塞到header頭中的X-Real-IP上轉發到web服務器上,此句做用爲了使web服務器能獲取客戶端請求的真實IP
} 負載均衡
set_real_ip_from 10.1.1.10; #負載均衡服務器IP
real_ip_header X-Real-IP; 測試
注:加這2行配置後才能獲取到訪問請求的真實IP,否則永遠拿到的都是負載均衡服務器的IP,此配置須要在編譯nginx的時候加上 --with-http_realip_module 參數才能成功,不然失敗。 spa
配置完後nginx.conf後,輸入命令:/nginx安裝目錄/sbin/nginx -t 測試一把看看配置是否正確,沒錯誤就啓動nginx 代理
在瀏覽器裏面輸入負載均衡服務器的ip,刷新就會看到頁面內容來回變化,說明請求在2臺web服務器之間切換,達到分流、均衡請求的目的 server
是否是很簡單,趕忙去試一把,瞬間就讓你逼格提高很多哦 (*^__^*)
後記:對於已經安裝了nginx的機器,可經過命令: /nginx安裝目錄/sbin/nginx -V 查看編譯參數,若是沒有加 --with-http_realip_module 這個編譯參數,能夠在源碼包下面從新加上這個參數編譯,configure後make(不要make install),而後拷貝objs下面的nginx覆蓋現有的nginx既可