windos用nginx配置web項目的負載均衡
首先去nginx官網下載下傳nginx版本
http://nginx.org/en/download.html
選擇windos版本即可
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLxEEROpXTU1UeNpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3gTO4EzM1MTMxITMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
下載下傳完了放在自定義目錄下
我放在d:/nginx目錄下,然後解壓。
背景的後端是用的兩個tomcat,分别配置了tomcat1和tomcat2的的http監聽端口 (因為我是在同一台機器上,兩個tomcat不能使用同一個端口,如果你是兩台機器,那不存在次問題),分别在項目的首頁index.jsp裡寫入"tomcat1",“tomcat2”,然後啟動兩個項目。
接下來在解壓的nginx目錄的conf目錄下找到nginx.conf配置檔案,在裡面配置。由于nginx的配置比較多,我就說一下重點配置,其他的配置選項可以參考
在http标簽下添加
upstream mysvr {
#weigth參數表示權值,權值越高被配置設定到的幾率越大
server 127.0.0.1:8001 weight=5;
server 127.0.0.1:8002 weight=5;
}
127.0.0.1是你部署項目的ip位址,我是直接部署在本地,如果你部署在其他機器,請填寫部署機器或者nginx綁定的網卡ip,一般填寫部署機器就可以,8001和8002是我的兩台tomcat的端口。
接下來在server标簽的location标簽裡面添加
proxy_pass http://mysvr/amywebcode/;
proxy_pass 指定通路代理清單,在這個裡面有一個mysvr,會解析成你上面配置的upstream 裡面的主機,amywebcode是我項目的名字,原本直接通路tomcat路徑是這樣的:
http://127.0.0.1:8001/amywebcode/index.jsp
http://127.0.0.1:8002/amywebcode/index.jsp
貼上完整的配置
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream mysvr {
#weigth參數表示權值,權值越高被配置設定到的幾率越大
server 127.0.0.1:8001 weight=5;
server 127.0.0.1:8002 weight=5;
}
server {
listen 80;
#通路nginx的路徑,可以是域名通路或者IP位址都可以
server_name 127.0.0.1;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
#請求轉向mysvr 定義的伺服器清單
proxy_pass http://mysvr/amywebcode/;
index index.html index.htm;
}
}
}
nginx的兩種負載均衡的幾種方式
nginx 的 upstream目前支援 4 種方式的配置設定
1)、輪詢(預設)
每個請求按時間順序逐一配置設定到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。
upstream mysvr {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
2)、weight 權重輪訓
指定輪詢幾率,weight和通路比率成正比,用于後端伺服器性能不均的情況。
upstream mysvr {
server 127.0.0.1:8001 weight=5 ;
server 127.0.0.1:8002 weight=5 ;
}
2)、ip_hash
每個請求按通路ip的hash結果配置設定,這樣每個訪客固定通路一個後端伺服器,可以解決session的問題。
upstream mysvr {
ip_hash;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
3)、fair(第三方)
按後端伺服器的響應時間來配置設定請求,響應時間短的優先配置設定。
4)、url_hash(第三方)