nginx
nginx介紹
nginx是一個輕量級,高性能的http和反向代理的web伺服器
在實際使用中常常和tomcat搭配使用
nginx安裝
nginx下載下傳頁,選擇對應的版本進行下載下傳
解壓到安裝目錄就可以直接使用了,需要注意的是,路徑不能有中文名,linux環境下需要還需要安裝gcc等環境
注意事項:nginx啟動會占用80端口,如果啟動異常,檢查80端口是否被占用,如果被占用可以在nginx解壓目錄下找到conf/nginx.conf檔案修改端口
server {
listen 90; #啟動端口
server_name localhost; location / {
root html;
index index.html index.htm;
}
location = /50x.html {
root html;
}
複制
nginx常用指令:
啟動指令:start nginx
關閉指令:nginx -s stop
重新開機指令:nginx -s reload
溫馨提示:每次修改配置檔案後記得重新啟動nginx哦
使用nginx實作本地反向代理
nginx.conf配置
#圖檔伺服器
server {
listen 90;
server_name image.page.com;
location / {
#代理的路徑
root E:/page/images/;
}
}
#背景商品管理伺服器
server{
listen 90;
server_name manage.page.com;
location / {
#代理伺服器路徑
proxy_pass http://localhost:8080;
}
}
}
複制
由于沒有購買域名,dns伺服器無法解析
可以在此路徑下C:\Windows\System32\drivers\etc找到hosts檔案,在檔案末尾添加本地域名解析
在浏覽器位址欄輸入域名後,會先在這個檔案查找,沒有才通過dns伺服器解析域名
添加本地域名解析
127.0.0.1 image.page.com
127.0.0.1 manage.page.com
#需要解析的域名和對應的ip位址
複制
nginx實作負載均衡
什麼是負載均衡
在項目部署時有多台伺服器,那麼這幾台伺服器該如何來配置設定呢?nginx可以配置設定使用者去通路不同的伺服器
配置nginx.conf配置檔案
#tomcatwindows叢集
#配置需要通路的端口
upstream pageWindows{
#
server localhost:8091;
server localhost:8092;
server localhost:8094;
}
#背景商品管理伺服器
server{
listen 90;
server_name manage.page.com;
location / {
#代理伺服器路徑
proxy_pass http://pageWindows;
}
}
}
複制
通過以上配置nginx就會平均的配置設定使用者通路的是那個伺服器
nginx中的權重政策
輪詢政策:平均配置設定
權重政策:按照比例配置設定
IPHASH政策:根據ip來配置設定
輪詢政策
nginx預設配置為輪詢
#tomcatwindows叢集
#配置需要通路的端口
upstream pageWindows{
#預設輪詢政策
server localhost:8091;
server localhost:8092;
server localhost:8094;
}
複制
優點:每個伺服器都平均配置設定通路
缺點:性能不是很好的伺服器會承擔它這個價格不該承受的壓力
權重政策
能力越大責任越大,性能越好的伺服器應該允許更大的通路
關鍵字:weight
#tomcatwindows叢集
#配置需要通路的端口
upstream pageWindows{
#配置權重政策
server localhost:8091 weight = 6;
server localhost:8092 weight = 3;
server localhost:8094 weight = 1;
}
複制
IPHASH政策
基于客服端ip位址進行伺服器分發,同一個ip隻能通路且始終隻能通路那一台伺服器
缺點:如果一台伺服器出現故障不能通路,那麼他們對應的那一批使用者将無法通路,顯然這個缺點是緻命的,當然負載不均也是肯定的,不推薦使用
關鍵字:ip_hash
#tomcatwindows叢集
#配置需要通路的端口
upstream pageWindows{
#IPHASH政策
ip_hash
server localhost:8091;
server localhost:8092;
server localhost:8094;
}
複制
nginx運維配置項
down屬性
當 nginx實作負載均衡時,背景伺服器出現故障,可以用down标記,nginx就不會對該伺服器進行配置設定
實作
#tomcatwindows叢集
#配置需要通路的端口
upstream pageWindows{
server localhost:8091 down; #nginx不會對該伺服器配置設定通路任務
server localhost:8092;
server localhost:8094;
}
複制
backup屬性
backup 表示備用機 正常情況下該機器不參與使用者的通路,留作備用,當伺服器全部宏基或者主伺服器繁忙時啟用
#tomcatwindows叢集
#配置需要通路的端口
upstream pageWindows{
server localhost:8091 down; #nginx不會對該伺服器配置設定通路任務
server localhost:8092 down;
server localhost:8094 backup;
}
複制
健康檢查/心跳檢測
健康檢查是為了在沒有程式員表示down屬性時,引起頻繁通路故障機的情況,當伺服器當機,隻需要影響使用者2秒之後,在指定的周期中不在通路故障機提升使用者體驗
常用屬性:
max_fails=1: 表示使用者發起請求時連結不到伺服器表示失敗.
fail_timeout=60s 如果伺服器通路失敗次數1次之後則在60秒内不會再通路故障機.
proxy_connect_timeout 2; #伺服器連結逾時時間
proxy_read_timeout 2; #讀取伺服器資源逾時時間
proxy_send_timeout 2; #向伺服器發送資源的逾時時間
配置
#tomcatwindows叢集
#配置需要通路的端口
upstream pageWindows{
server localhost:8091 max_fails=1 fail_timeout=60s;
server localhost:8092 ;
server localhost:8094 ;
}
複制