nginx安裝及配置

1. 正向代理和反向代理

  正向代理是一個位於客戶端【用戶A】和原始服務器【服務器B】之間的服務器【代理服務器Z】,爲了從原始服務器取得內容,用戶A向代理服務器Z發送一個請求並指定目標(服務器B),而後代理服務器Z向服務器B轉交請求並將得到的內容返回給客戶端。即代理服務器替代訪問方【用戶A】去訪問目標服務器【服務器B】。客戶端必需要進行一些特別的設置才能使用正向代理。固然前提是要知道正向代理服務器的IP地址,還有代理程序的端口。nginx

    

  用單機tomcat搭建的網站,在比較理想的狀態下可以承受的併發訪問量在150200左右。按照併發訪問量佔總用戶數量的5%10%這樣計算,單點tomcat網站的用戶人數在15004000左右。對於一個爲全國範圍提供服務的網站顯然是不夠用的,爲了解決這個問題引入了負載均衡方法。負載均衡就是一個web服務器解決不了的問題能夠經過多個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 裏的默認的端口配置來啓動tomcat

    

nginx.conf 中節點做用:

  • worker_processes:工做進程個數,可配置多個服務器

  • worker_connections:單個進程最大鏈接數併發

  • server:每個server至關於一個代理服務器負載均衡

  • lister:監聽端口,默認80網站

  • server_name:當前服務的域名,能夠有多個,用空格分隔(咱們是本地因此是localhost)spa

  • 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秒,那麼超時策略配置以下

相關文章
相關標籤/搜索