天天看點

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

02_Nginx配置執行個體

  • 一、Nginx的應用:反向代理實作一:
    • 1.1.通過windows的hosts檔案來進行ip映射
    • 1.2.通過nginx實作上述效果
  • 二、反向代理執行個體二:
    • 重新模拟真實生産環境
  • 三、Nginx的配置執行個體三--負載均衡:
    • 負載均衡的配置政策:
      • 1.輪詢(預設方式):
      • 2.ip_hash(IP綁定)【不建議】
      • 3.fair(第三方)(了解)
      • 4.url_hash(第三方)(了解)
  • 四、Nginx的配置執行個體四--動靜分離:
    • 4.1.動态頁面和靜态頁面的差別
    • 4.2. 動靜分離
    • 4.3.如何實作動靜分離
    • 4.4. 動靜分離的配置
  • Nginx在實際開發中的應用:

一、Nginx的應用:反向代理實作一:

1.1.通過windows的hosts檔案來進行ip映射

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

配置完成之後 可以通過 www.123.com:8080 可以達到我們通路tomcat的歡迎頁的效果

www.123.com == 127.0.0.1

1.2.通過nginx實作上述效果

修改nginx的配置

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

配置域名解析 在hosts

①在windows中如果現在要通路我們tomcat 則需要在windowns的hosts檔案中來配置

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

②如果在linux系統中要通過通路——配置linxu的hosts檔案

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

二、反向代理執行個體二:

在一個nginx中 相同的位址和端口部署兩個應用

首先建立兩個tomcat 分别的啟動端口為9001 9002

分别部署不同的兩個項目

edu vod

在webapps下建立兩個檔案夾 :分别為edu vod

在目錄下建立index.html

<!Doctype html>
<html>
        <head>
                <title>EDU</title>
        </head>
        <body>
                <h1>EDU Test page!!!</h1>
        <body>

</html>
           
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

(都可以單獨連接配接)

nginx的配置

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

如果在同一台機器上 需要同時啟動兩個tomcat 需要修改兩個端口

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

location 指令說明

該指令用于比對 URL。

文法如下:

1、 = :用于不含正規表達式的 uri 前,要求請求字元串與 uri 嚴格比對,如果比對成功,就停止繼續向下搜尋并立即處理該請求。
2、 ~:用于表示 uri 包含正規表達式,并且區分大小寫。
3、 ~*:用于表示 uri 包含正規表達式,并且不區分大小寫。
4、 ^~:用于不含正規表達式的 uri 前,要求 Nginx 伺服器找到辨別 uri 和請求字
符串比對度最高的 location 後,立即使用此 location 處理請求,而不再使用 location塊中的正則 uri 和請求字元串做比對。
           

注意:如果 uri 包含正規表達式,則必須要有 ~ 或者 ~* 辨別。

重新模拟真實生産環境

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
在133的tomcat的webapps下部署edu  建立一個index.html
在132的tomcat的webapps下部署vod 建立一個index.html
           

反向代理 Nginx的配置

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

成功通路!

三、Nginx的配置執行個體三–負載均衡:

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

将132下的vod更改:

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

配置要求 :

當我們通路Nginx的時候 此時 兩台應用伺服器 輪流按照規則對用戶端提供服務

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

進行通路發現兩台伺服器輪流提供服務

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
  1. 負載均衡政策:

    負載均衡及将負載分攤到不同的服務單元,保證服務的可用性,還保證響應的速度 給使用者一個很好的體驗。

  2. 反向代理的作用:

    對用戶端隐藏服務提供者的資訊。

負載均衡的配置政策:

1.輪詢(預設方式):

每台伺服器的硬體配置都基本相同 是以對處理請求的能力也大緻相同。将請求按順序逐一配置設定到每台伺服器上 并實作一個循環。

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

在輪詢方式中 如果有伺服器當機 則會自動被剔除

權重方式:

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
在輪詢的基礎之上 指定配置設定的機率
權重值越大  配置設定到的機率也越大
權重政策  主要應用在伺服器硬體差異比較大的場景
           

2.ip_hash(IP綁定)【不建議】

指定負載均衡器按照基于用戶端IP的配置設定方式,這個方法確定了相同的用戶端的請求一直發送到相同的伺服器,以保證session會話。這樣每個訪客都固定通路一個後端伺服器,可以解決session不能跨伺服器的問題。

注意:

在nginx版本1.3.1之前,不能在ip_hash中使用權重(weight)。
ip_hash不能與backup同時使用。
此政策适合有狀态服務,比如session。
當有伺服器需要剔除,必須手動down掉。
           
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

進行通路發現同一個ip位址隻能通路對應伺服器

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

3.fair(第三方)(了解)

按後端伺服器的響應時間來配置設定請求,響應時間短的優先配置設定。

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

4.url_hash(第三方)(了解)

按通路url的hash結果來配置設定請求,使每個url定向到同一個後端伺服器,後端伺服器為緩存時比較有效。

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

四、Nginx的配置執行個體四–動靜分離:

4.1.動态頁面和靜态頁面的差別

靜态資源:在使用者通路的時候  ,不因為使用者的操作而使得資源的源代碼産生變化的資源:
 圖檔  js  css  
動态資源: 在使用者通路的時候  ,  随着使用者的操作而使得資源的源代碼産生變化的資源
jsp  
           

4.2. 動靜分離

在一個應用中,将變的資源和不變的資源按照一定的規則區分開來。

網站的 優化:将動态資源靜态化。 對動态資源緩存處理

4.3.如何實作動靜分離

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

4.4. 動靜分離的配置

在/usr/local下建立目錄static/imgs 給其中存儲一些靜态的圖檔

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

在windowns下的hosts檔案中做域名解析

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

如果要通路靜态資源的目錄 則需要添加一個配置

(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:
(Nginx)02_Nginx配置執行個體一、Nginx的應用:反向代理實作一:二、反向代理執行個體二:三、Nginx的配置執行個體三–負載均衡:四、Nginx的配置執行個體四–動靜分離:Nginx在實際開發中的應用:

Nginx在實際開發中的應用:

1 作為靜态資源的伺服器 
2 反向代理
3 負載均衡
4 動靜分離
           

繼續閱讀