nginx安裝及配置

weixin_34037977發表於2018-02-27

1. 正向代理和反向代理

  正向代理是一個位於客戶端【使用者A】和原始伺服器【伺服器B】之間的伺服器【代理伺服器Z】,為了從原始伺服器取得內容,使用者A向代理伺服器Z傳送一個請求並指定目標(伺服器B),然後代理伺服器Z向伺服器B轉交請求並將獲得的內容返回給客戶端。即代理伺服器替代訪問方【使用者A】去訪問目標伺服器【伺服器B】。客戶端必須要進行一些特別的設定才能使用正向代理。當然前提是要知道正向代理伺服器的IP地址,還有代理程式的埠。

    

  用單機tomcat搭建的網站,在比較理想的狀態下能夠承受的併發訪問量在150200左右。按照併發訪問量佔總使用者數量的5%10%這樣計算,單點tomcat網站的使用者人數在15004000左右。對於一個為全國範圍提供服務的網站顯然是不夠用的,為了解決這個問題引入了負載均衡方法。負載均衡就是一個web伺服器解決不了的問題可以通過多個web伺服器來平均分擔壓力來解決,併發過來的請求被平均分配到多個後臺web伺服器來處理,這樣壓力就被分解開來。

  反向代理正好與正向代理相反,對於客戶端而言代理伺服器就像是原始伺服器,並且客戶端不需要進行任何特別的設定。客戶端向反向代理的名稱空間(name-space)中的內容傳送普通請求,接著反向代理將判斷向何處(原始伺服器)轉交請求,並將獲得的內容返回給客戶端。

    

2. 安裝及啟動nginx

  Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力確實在同型別的網頁伺服器中表現較好,中國大陸使用nginx網站使用者有:百度、京東、新浪、網易、騰訊、淘寶等。
  下載 解壓(注意:解壓路徑不要包含中文),雙擊nginx.exe即可執行,可到服務中檢視。開啟瀏覽器http://localhost:80顯示如下頁面說明啟動成功。
    

如果啟動不成功,說明80埠被佔用,可通過 netstat  -ano|findstr ":80" 檢視

     

可通過修改 nginx-1.12.2\conf\nginx.conf 裡的預設的埠配置來啟動

    

nginx.conf 中節點作用:

  • worker_processes:工作程式個數,可配置多個

  • worker_connections:單個程式最大連線數

  • server:每一個server相當於一個代理伺服器

  • lister:監聽埠,預設80

  • server_name:當前服務的域名,可以有多個,用空格分隔(我們是本地所以是localhost)

  • location:表示匹配的路徑,這時配置了/表示所有請求都被匹配到這裡

  • index:當沒有指定主頁時,預設會選擇這個指定的檔案,可多個,空格分隔

  • proxy_pass:請求轉向自定義的伺服器列表

  • upstream name{ }:伺服器叢集名稱

nginx的三個常用命令:

啟動nginx: start nginx
關閉nginx: nginx -s stop
重新載入配置檔案: nginx -s reload     //可以在不關閉nginx的情況下更新配置檔案.

3. nginx負載均衡配置

 使用兩個tomcat伺服器演示(已配置好且都能正常使用),由於兩個tomcat版本不一樣,可以直接展現,這裡就先不新增專案了

配置 nginx-1.12.2\conf\nginx.conf 

     

訪問同一網址 http://localhost:80 可發現頁面在兩個tomcat中來回切換

也可設定權重

注意,每次修改完配置需要重啟一下nginx。

4. 超時策略

如果叢集中的某個伺服器掛了,此時nginx分發請求到該伺服器時,如果沒有配置超時策略,會出現一段至少1分鐘的等待,超過了客戶端的響應時間,會造成客戶端超時情況,使Nginx報499。

主要介紹如下幾個引數:

  • proxy_connect_timeout:與伺服器連線的超時時間,預設60s
  • proxy_timeout:nginx接收後端伺服器的響應超時時間,預設值為10min,儘量取預設值
  • fail_timeout:當該時間內伺服器沒響應,則認為伺服器失效,預設10s
  • max_fails:允許連線失敗次數,預設為1

在nginx.conf中的配置:

設定客戶端響應時間=proxy_connect_timeout + fail_timeout*max_fails,如我的客戶端響應時間設定為3秒,那麼超時策略配置如下

 

相關文章