nginx配置:反向代理和負載均衡
參考部落格:https ://blog.csdn.net/xuanjiewu/article/details/79458266
一:反向代理與正向代理
正向代理:直接獲取目標伺服器資料(瀏覽器輸入a.com直接獲取甲網頁)
反向代理:通過代理伺服器獲取目標伺服器資料(通過b.com也能獲取一個網頁,因為b.com去訪問a.com,
所以我們輸入b.com表面上訪問的B,實際獲取一個的資料)
server { listen 8080; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { #root html; #index index.html index.htm; proxy_pass http://luckwml.top:80; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
1.配置:
這是我的CONF / nginx.conf配置檔案中的伺服器(可以配置多個)
2.啟動
視窗啟動的nginx的的,可以雙擊nginx.exe
3.訪問
在瀏覽器位址列輸入: http:// localhost:8080 /
看到將會 http://luckwml.top:80
二:負載均衡
為了避免大量使用者同時訪問一臺機器,採用負載均衡,比如將請求分發在兩臺機器上。
upstream aa{
server 48.98.52.51:80;
server 48.98.52.52:80;
}
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://aa;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
1.配置
如圖所示,和反向代理比較可以很容易發現,多了上游配置,伺服器就是需要分發的伺服器,
這裡假設兩臺伺服器48.98.52.51,48.98.52.52
2.啟動(參考反向代理)
3.訪問
在瀏覽器位址列輸入: http:// localhost:8080 /
將會看到48.98.52.51:80或48.98.52.52:80訪問的頁面,一直訪問將會輪詢這兩臺伺服器。
===》在使用負載均衡的時候會遇到session丟失情況
當用戶第一次訪問伺服器nginx將請求指向51伺服器,並儲存session登入資訊,
再次訪問伺服器將請求指向52伺服器,這時session不存在,導致登入資訊不存在。(session保持)
解決方法:ip_hash可以保證同一個ip訪問指向同一臺伺服器(不改變session儲存);
補充:
session保持:session儲存在某臺伺服器,保持不變;
session複製:session值複製在每一臺伺服器,即每臺伺服器有相同的session值;
session共享:將session值儲存在全域性共享的儲存介質來達到同樣的效果,如資料庫,快取等;
-------------------------------------------------- -------------------------------------------------- -----------------------------------
這是我對nginx的的的的簡單瞭解,如有理解不正確的地方,非常感謝能夠指點一下,謝謝!