文章目錄
1、靜態網站
Nginx是一個Http的Web服務器,可以將服務器上的靜態文件(如Html、圖片等)通過Http協議返回給瀏覽器客戶端;
server{
listen:80; #監聽端口號
location / { #監聽路徑
root /option/static/TestWeb #靜態文件路徑
index index.html index.htm #歡迎頁html文件名
}
}
規則:請求地址中 ip + 端口 = root
舉例說明:
靜態頁面存放地址 = /opt/static/TestWeb/index.html
期待nginx訪問路徑 = http://192.168.105.130 (請求格式1)
或者
http://192.168.105.130/TestWeb (請求格式2)
請求格式1 http://192.168.105.130 Nginx配置文件配置方式:
server{
listen:80; #監聽端口號
location / { #監聽路徑
root /option/static/TestWeb #靜態文件路徑
index index.html index.htm #歡迎頁html文件名
}
}
請求格式2 http://192.168.105.130/TestWeb Nginx配置文件配置方式:
server{
listen:80; #監聽端口號
location /TestWeb { #監聽路徑
root /option/static/ #靜態文件路徑
index index.html index.htm #歡迎頁html文件名
}
}
注意:請求路徑與靜態頁面實際路徑匹配規則:ip + 端口 = root
用請求格式2 http://192.168.105.130/TestWeb 進行說明:
http://192.168.105.130 = root = /option/static/ (location = /TestWeb)
http://192.168.105.130/TestWeb = root = /option/static/TestWeb (匹配成功)
2、負載均衡
概述:將請求均勻分攤到多個服務器節點上執行。
2.1 負載均衡實現方式
1、硬件實現 : F5、深信服、Array等。
2、軟件實現 : Nginx、LVS、HAPProxy等。
1、第一步http模塊上:(例子)
upstream www.myweb.com{
server 127.0.0.1 weight = 3;
server 127.0.0.1 weight = 1;
}
其中weigh=1表示權重,用於後端服務器性能不均的情況,訪問比率等於權重之比,權重越大訪問機會越高。
2、第二步在server模塊裏添加:(例子)
location /myweb{
proxy_pass http://www.myweb.com;
}
- 其中www.myweb.com字符串要和upstream後面的字符串相等。
- upstream中所配置的服務端,nginx會進行健康檢查,如果客戶端不能正常訪問則nginx會跳過該服務端的轉發。
2.2 負載均衡
Nginx如何實現負載均衡:(通過在Nginx的nginx.conf文件進行配置即可實現)
2.3 常用負載均衡策略
2.3.1 輪詢策略 :
如不配置默認的是輪詢策略
2.3.2 ip_hash策略:
ip_hash也叫IP綁定,每個請求按訪問ip的hash值分配,
這樣每個訪問客戶端會固定訪問一個後端服務器,
可以解決Session丟失的問題。
upstream www.myweb.com{
ip_hash;
server 127.0.0.1:8080 ;
server 127.0.0.1:8090 ;
}
2.3.3 權重策略:
upstream www.myweb.com{
server 127.0.0.1 weight = 3; weight 比例越大,訪問機率越大
server 127.0.0.1 weight = 1; weight 比例越大,訪問機率越大
}
2.3.4 最少連接策略:
web請求會被轉發到連接數最少的服務器上
upstream www.myweb.com{
least_conn;
server 127.0.0.1 ;
server 127.0.0.1 ;
}
2.4 負載均衡其他幾個配置
backup狀態:
upstream www.myweb.com{
server 127.0.0.1:8090 ;
server 127.0.0.1:8080 backup; (其他所有非backup的機器都掛機的時候,才請求backup機器)
}
down狀態:
upstream www.myweb.com{
server 127.0.0.1:8090 ;
server 127.0.0.1:8080 down; (down表示當前是down狀態,不參與負載均衡)
}
3、靜態代理
針對文件類型進行匹配:
1、把所有靜態資源的訪問改爲訪問nginx,而不是訪問tomcat,因爲nginx更擅長於靜態資源的處理,性能更好、效率更高。
2、在實際應用中,靜態資源比如圖片、css、html、js交給nginx,而不是交給tomcat。
location ~ .*\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {
root /opt/static;
}
3、配置符號講解:
(
~ 表示正則匹配
第一個點,表示任意字符;
* 表示一個或多個字符;
\. 是轉移字符,是後面這個點的轉義字符;
| 表示或者;
$ 表示結尾;
)
4、動靜分離
針對文件路徑進行匹配
location ~ .*/(css|js|img|images) {
root /opt/static;
}
xxx/css
xxx/js
xxx/img
xxx/images
以上例子均可以匹配上