負載均衡的做用:在多個服務器上部署同一個web項目,nginx會將用戶的請求隨機(可自定義)分發到其中一個web服務器,當其中任意一個或多個web服務器宕機時,不影響用戶的正常訪問。 css
基本網絡構架: html
步驟: 前端
一、到http://nginx.org/ 下載好windows的zip包,解壓後直接運行 nginx.exe,窗口會一閃而過,但在任務管理器可看到兩個進程,咱們如今訪問http://localhost,會顯示以下內容。這是由於ngnix啓動後,默認會監聽本機的80端口,而後將該端口下的全部訪問都轉到了 html/index.html。 nginx
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
} web
service : 一個配置實例 windows
listen: 當前這個實例監聽本機的端口號,這個在全部server中就是惟一的,否則一個端口被多個實例監聽,nginx就不知該用哪一個處理了。 緩存
server_name:給當前實例定義一個名稱 tomcat
location / : 監聽當前端口全部請求 服務器
root : location 請求對應的本機文件目錄,html 表示全部的請求都將以html文件夾作爲根目錄.這個配置最經常使用於緩存靜態文件時使用,如js / css / image等 網絡
index: 默認的首頁,若是不存在index.html ,則顯示index.htm
若是想讓nginx監聽到80端口訪問時轉到咱們本身的tomcat服務器,只需將localtion / 修改成以下就能夠了:
location / {
proxy_pass http://localhost:8080
}
這時咱們再訪問http://localhost ,則會顯示若是頁面了,並且任何功能都不會受影響:
三、兩個web服務器負載均衡:
upstream local_tomcat {
# 這裏是本機的第一個web服務器
server localhost:8080;
# 這裏是本機的第二個web服務器
server localhost:9090;
#還可添加不少
}
server{}
當訪問http://localhost時,nginx會隨機的跳轉到8080與9090服務器。當8080服務器宕機時,9090會繼續工做。若是想控制兩個服務器的權重,好比 9090 服務器性能好,能夠多處理一些請求,則能夠以下配置權重
upstream local_tomcat {
server localhost:8080 weight=1;
server localhost:9999 weight=2;
}
這樣在9090受訪的機率會比8080多一倍。
三、靜態文件,這個好像conf.xml有現成的配置,只要改一下就能夠,以下對圖片的配置
#location ~ \.(png|jpg|bmp)$ {
root image;
}
全部png 、 jpg 、 bmp 的請求都會直接去訪客根目錄下的image文件夾,固然也可使用絕對路徑。
四、還有待學習的地址
session如何處理,由於分發到不一樣的web服務器,session也須要在各個服務器上訪問。好像這個能夠作成無狀態的session,這個在之後單獨寫文字進行探究。