Nginx反向 Proxy負載平衡架構圖(三台伺服器為例)
Nginx負載平衡(圖示:192.168.1.1:80伺服器配置)192.168.1.1:80虛擬機器主機角色這裡192.168.1.1:80虛擬機器主機基於nginx進行配置,這裡主要的作用是webserver和負載平衡,接收用戶端的請求,並且根據後端伺服器的情況進行請求分發,實現負載平衡upstream模組nginx實現負載平衡模組主要利用了upstream模組,它提供了一個簡單的方法將用戶端的請求反向 Proxy到後端伺服器監聽的虛擬機器主機上,實現負載平衡server指令
文法:server_name [parameters]使用環境:upstream功能:該指令使用者指定後端伺服器名稱和參數。伺服器的名稱具體指nginx或apache監聽的虛擬機器主機,可以是網域名稱、ip地址+連接埠號碼或unix socket參數:weight=[number]:設定伺服器的權重,權重值越高,被分配到的用戶端請求越多max_fail=[number]:在參數fail_timeout指定的時間內對後端伺服器請求失敗的次數。fail_timeout=[time]:在經曆參數max_fail設定失敗的次數後,暫停時間down:標記伺服器為永久離線狀態backup:僅僅在非backup伺服器全部宕機或繁忙的時候才啟用
upstream樣本配置
upstream icontact_pool {server192.168.1.1:9000weight=5max_fails=3fail_timeout=20s;server192.168.1.2:9000weight=3max_fails=3fail_timeout=20s;server192.168.1.3:9000weight=2max_fails=3fail_timeout=20s;}ngxin虛擬機器主機負載平衡配置
server {listen192.168.1.1:80;server_name192.168.1.1;access_log/var/log/nginx/balance/loadbalance.access.log;error_log/var/log/nginx/balance/loadbalance.error.log;#允許列目錄location / {root/balance/;autoindexon;autoindex_exact_sizeoff;autoindex_localtimeon;allow allow;}#proxy the php scripts to fpm_pool_upstreamlocation ~ \.php$ {root/balance;include/etc/nginx/fastcgi_params;#將webserver接收的用戶端請求通過fastcgi負載平衡到php5-fpm的池fastcgi_passicontact_pool;}}負載平衡伺服器處理php請求角色192.168.1.1:9000、192.168.1.2:9000、192.168.1.3:9000為後端的三台負載平衡伺服器監聽的fpm地址和連接埠號碼,負載平衡伺服器通過fastcgi將http請求和上下文參數發送給這個fpm池,然後fpm負責解析php程式注意三台伺服器必須保證php的root目錄有用戶端需要的php檔案,否則會出現404錯誤!