nginx負載均衡簡單配置
準備三台虛拟機來做這個實驗:
172.16.100.6 web伺服器
172.16.100.7 web伺服器
172.16.100.106 負載均衡伺服器
向web伺服器中放入測試檔案:
<code><</code><code>html</code><code>> </code>
<code><</code><code>head</code><code>> </code>
<code><</code><code>title</code><code>>Welcome to nginx!</</code><code>title</code><code>> </code>
<code></</code><code>head</code><code>> </code>
<code><</code><code>body</code> <code>bgcolor</code><code>=</code><code>"white"</code> <code>text</code><code>=</code><code>"black"</code><code>> </code>
<code><</code><code>center</code><code>><</code><code>h1</code><code>>Welcome to nginx! 172.16.100.6</</code><code>h1</code><code>></</code><code>center</code><code>> </code>
<code></</code><code>body</code><code>> </code>
<code></</code><code>html</code><code>></code>
<code>vi</code> <code>/usr/local/nginx/conf/nginx</code><code>.conf</code>
<code>user nginx nginx;worker_processes 1;</code>
<code>events {</code>
<code> </code><code>worker_connections 1024;</code>
<code>}</code>
<code>http {</code>
<code> </code><code>include mime.types;</code>
<code> </code><code>default_type application</code><code>/octet-stream</code><code>; </code>
<code> </code><code>sendfile on;</code>
<code> </code><code>keepalive_timeout 65;</code>
<code> </code><code>upstream webservs {</code>
<code> </code><code>server 172.16.100.6 weight=1 max_fails=2 fail_timout=2;</code>
<code> </code><code>server 172.16.100.7 weight=1 max_fails=2 fail_timout=2;</code>
<code> </code><code>server 127.0.0.1:8083 backup;</code>
<code> </code><code>}</code>
<code> </code>
<code> </code><code>server {</code>
<code> </code><code>listen 80;</code>
<code> </code><code>server_name localhost;</code>
<code> </code><code>index index.html index.htm index.php; </code>
<code> </code><code>location / {</code>
<code> </code><code>proxy_pass webservs;</code>
<code> </code><code>proxy_set_header X-Real-IP $remote_addr;</code>
<code> </code><code>}</code>
<code> </code>
<code> </code><code>error_page 500 502 503 504 </code><code>/50x</code><code>.html;</code>
<code> </code><code>location = </code><code>/50x</code><code>.html {</code>
<code> </code><code>root html;</code>
<code> </code><code>server {</code>
<code> </code><code>listen 8083;</code>
<code> </code><code>server_name localhost;</code>
<code> </code><code>index index.html index.htm; </code>
<code> </code><code>root </code><code>/web/errorpages</code><code>;</code>
mkdir -p web/errorpages
vi web/errorpages/index.html
sorry!.......
當兩台後端伺服器挂掉,就會使用本機的sever通路的頁面是sorry
定義upstream中server指令文法如下:
server address [parameters]
關鍵字server必選。
address也必選,可以是主機名、域名、ip或unix socket,也可以指定端口号。
parameters是可選參數,可以是如下參數:server address [ parameters ]
weight = NUMBER 權重
max_fails = NUMBER 最多錯誤幾次
fail_timeout = TIME 最多錯誤遲疑多長時間,不确定預設10s
down 表示目前server已停用
backup 表示目前server是備用伺服器,隻有其它非backup後端伺服器都挂掉了或者很忙才會配置設定到請求。
max_fails和fail_timeout一般會關聯使用,如果某台server在fail_timeout時間内出現了max_fails次連接配接失敗,那麼Nginx會認為其已經挂掉了,進而在fail_timeout時間内不再去請求它,fail_timeout預設是10s,max_fails預設是1,即預設情況是隻要發生錯誤就認為伺服器挂掉了,如果将max_fails設定為0,則表示取消這項檢查。
本文轉自ling118 51CTO部落格,原文連結:http://blog.51cto.com/meiling/1896426,如需轉載請自行聯系原作者