Nginx 主要應用 教程

1、靜態網站

Nginx是一個Http的Web服務器,可以將服務器上的靜態文件(如Html、圖片等)通過Http協議返回給瀏覽器客戶端;
centos中靜態頁面文件夾

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;
}
  1. 其中www.myweb.com字符串要和upstream後面的字符串相等。
  2. 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
以上例子均可以匹配上
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章