nginx的部署初級(上)
Nginx出了可以作為一般的web服務器給出訪問到的數據外,還可以通過配置的反向代理方式讓用戶訪問網站:
下面根據場景應用進行nginx的反向代理進行運用
1.公司內部大部分項目都部署在192.168.1.100服務器上,項目組成員習慣性的把所有指定的域名通過host指向該服務器(否則要互相告訴對應的內網IP,另外一種解決方式是搭建內網DNS)
于是可以通過反向代理轉發的方式,來解決這個問題。
在http模塊里添加:
upstream www.junheng.com {
server 192.168.1.106:100;
}
然后在添加一個server
server
{
listen 80;
server_name www.junheng.com;
location / {
proxy_pass http://www.junheng.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
這樣就將內網上192.168.1.106:100上的通過了192.168.1.100:80顯示出來,倆個優點:一個是將另外一個服務器的非80轉換成了標準的80端口,數據交換極大的方便 第二個是統一了入口IP(如果對內網有限定訪問要求,只限定那臺電腦即可)
PS:KX上網訪問網站的很快就能利用到這點,在一臺可以訪問到外國站點的虛擬機(同時自己可以登錄的虛擬機上)上設置一個反向代理,然后綁定一個域名,然后在本地用host指定訪問域名,這樣就完成了KX上網功能。
2.網站訪問量比較大,網站需要不同的服務器進行分流處理(一般服務器訪問量大的時候,都會遇到這個問題) 這個時候需要對不同的服務器進行輪詢查
有五種方式分配策略
策略分配的樣本如下:
upstream www.junheng.com {
ip_hash;
server 192.168.1.106:100 weight=1;
server 192.168.1.105:80 weight=2 ;
}
Weight 指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況。
ip_hash每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題。
fair(第三方)按后端服務器的響應時間來分配請求,響應時間短的優先分配。
url_hash 按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存時比較有效。
PS:這樣可以輪詢實現不同的IP服務器訪問