正向代理是一個位於客戶端【用戶A】和原始服務器【服務器B】之間的服務器【代理服務器Z】,爲了從原始服務器取得內容,用戶A向代理服務器Z發送一個請求並指定目標(服務器B),而後代理服務器Z向服務器B轉交請求並將得到的內容返回給客戶端。即代理服務器替代訪問方【用戶A】去訪問目標服務器【服務器B】。客戶端必需要進行一些特別的設置才能使用正向代理。固然前提是要知道正向代理服務器的IP地址,還有代理程序的端口。nginx
用單機tomcat搭建的網站,在比較理想的狀態下可以承受的併發訪問量在150到200左右。按照併發訪問量佔總用戶數量的5%到10%這樣計算,單點tomcat網站的用戶人數在1500到4000左右。對於一個爲全國範圍提供服務的網站顯然是不夠用的,爲了解決這個問題引入了負載均衡方法。負載均衡就是一個web服務器解決不了的問題能夠經過多個web服務器來平均分擔壓力來解決,併發過來的請求被平均分配到多個後臺web服務器來處理,這樣壓力就被分解開來。web
反向代理正好與正向代理相反,對於客戶端而言代理服務器就像是原始服務器,而且客戶端不須要進行任何特別的設置。客戶端向反向代理的命名空間(name-space)中的內容發送普通請求,接着反向代理將判斷向何處(原始服務器)轉交請求,並將得到的內容返回給客戶端。後端
若是啓動不成功,說明80端口被佔用,可經過 netstat -ano|findstr ":80" 查看瀏覽器
可經過修改 nginx-1.12.2\conf\nginx.conf 裏的默認的端口配置來啓動tomcat
worker_processes:工做進程個數,可配置多個服務器
worker_connections:單個進程最大鏈接數併發
server:每個server至關於一個代理服務器負載均衡
lister:監聽端口,默認80網站
server_name:當前服務的域名,能夠有多個,用空格分隔(咱們是本地因此是localhost)spa
location:表示匹配的路徑,這時配置了/表示全部請求都被匹配到這裏
index:當沒有指定主頁時,默認會選擇這個指定的文件,可多個,空格分隔
proxy_pass:請求轉向自定義的服務器列表
upstream name{ }:服務器集羣名稱
啓動nginx: start nginx 關閉nginx: nginx -s stop 從新加載配置文件: nginx -s reload //能夠在不關閉nginx的狀況下更新配置文件.
使用兩個tomcat服務器演示(已配置好且都能正常使用),因爲兩個tomcat版本不同,能夠直接展示,這裏就先不添加項目了
配置 nginx-1.12.2\conf\nginx.conf
訪問同一網址 http://localhost:80 可發現頁面在兩個tomcat中來回切換
也可設置權重
注意,每次修改完配置須要重啓一下nginx。
若是集羣中的某個服務器掛了,此時nginx分發請求到該服務器時,若是沒有配置超時策略,會出現一段至少1分鐘的等待,超過了客戶端的響應時間,會形成客戶端超時狀況,使Nginx報499。
主要介紹以下幾個參數:
在nginx.conf中的配置:
設置客戶端響應時間=proxy_connect_timeout + fail_timeout*max_fails,如個人客戶端響應時間設置爲3秒,那麼超時策略配置以下