官檔
nginx的負載均衡主要依賴這個模組:ngx_http_upstream_module
1、安裝好nginx(192.168.1.111)
2、修改egrep -v "#|^$" nginx.conf.default > nginx.conf
對其進行修改
}訪問server_name的時候,會找listen埠,所有「/」目錄以下的請求,都會經過nginx,拋給http://webserver_pool 中定義的web伺服器。
以下是對上面標紅的3個地方的解釋
01:02:proxy_pass **通道,指向了乙個upstream元件,請求將由upstream元件中配置的webserver進行處理
03:webserver池,由關鍵字upstream標識,weight表示權重,backup代表備份機。其他引數在後面會提到。
nginx -t #用於檢查語法
[root@lb01 conf]# ../sbin/nginx -t
nginx -s reload
3、測試
測試用兩台機器(192.168.1.108,192.168.1.109),使用apachehttpd作為web伺服器
a、配置 web伺服器
分別在108、109上執行一下操作
掛載iso檔案,配置本地yum源後
然後 echo $ > /var/www/html/index.html
啟動httpd /etc/init.d/httpd start
curl 127.0.0.1
b、測試連線
curl 192.168.1.111
curl 192.168.1.111
curl 192.168.1.111
多次訪問,看返回的ip位址是否不同的webserver的位址。
檢查負載均衡器到web伺服器通不通
[root@lb01 conf]# curl 192.168.1.109
curl: (7) couldn't connect to host
[root@lb01 conf]# curl 192.168.1.108
curl: (7) couldn't connect to host
[root@lb01 conf]# telnet 192.168.1.108 80
trying 192.168.1.108...
telnet: connect to address 192.168.1.108: no route to host
這裡要關閉防火牆。
上面使用的是nginx的輪循請求分發策略,ip_hash則不同,相同的ip會對映為乙個hash值,來自這個ip的請求,並被分發到同一臺webserver上。這樣,乙個客戶端永遠定位到一台伺服器,適用於回話保持。
ip_hash的配置
upstream webserver_pool
配置了ip_hash後,權重失效,備份機配置失效。
引數 serverserver [ip|domain]:port
weightweight=[0-9]
預設是1
max_failsmax_fails=2
最大嘗試失敗次數,0表示禁止嘗試
backup
熱備節點。所有的幾點都down後,熱備節點啟用。
fail_timeout=20s
失敗超時時間,預設10s,通常配置2、3,間隔20s去檢查一次,該節點是否存活
down
伺服器不可用,這個引數可配合ip_hash使用
max_connsserver ip weight=5 max_conns=2000
併發連線數
least_conn
最小連線數。誰連線少,就發給誰
更多參見nginx文件
具體可參見文件,這裡對一些常用屬性做介紹。
location 路徑{} 可以配置多個。proxy_pass 可以放的位置是 location,if,limit標籤
server
location /path1
}
nginx後端的web伺服器,不會記錄客戶端的真實ip(即經過nginx後,丟失了http頭中的host),需要在nginx中配置proxy_set_header引數。
所以經過nginx時,要把host頭帶過去。
配置了 x-forwarded-for $remote_addr; 後可以經過nginx將ip帶到web伺服器。
location /
架構圖
location /
Nginx常用配置
允許跨域 add header access control allow origin 配置 的使用者訪問認證 生成密碼檔案 htpasswd b c sitepasswd pigt password 配置訪問授權 auth basic input you user name and passwor...
nginx常用配置
其主要分為幾個模組 全域性快從開始到events塊之間的一部分內容,其作用域為全域性作用域 events塊 主要負責nginx伺服器與使用者的網路連線 常用設定 是否開啟多work process下的網路連線進行序列化 師傅允許接收多個網路連線 選取哪種驅動模型連線請求 process 最大連線數 ...
nginx 常用配置
1,listen per worker listen 80 listen 8010 per worker per worker是說明當前的nginx除了建立在80號的埠上的偵聽之外,還需要建立8010開始的4個 由worker processess配置決定的 埠。然後,啟動nginx,再在命令列上測...