nginx三大功能(之二負載均衡)

什麼是負載均衡??html

負載均衡是指N臺服務器平均分擔負載,不會由於某臺服務器負載高而使得某臺閒置的狀況。java

負載均衡要求的是即有兩臺服務器以上便可。nginx

測試環境服務器

因爲沒有服務器,因此本次測試直接使用host設置域名,使用VMware虛擬機來完成:負載均衡

測試域名:www.javaDevelopment.com測試

A 服務器IP(192.168.17.33)server

主服務器 B服務器IP (192.169.17.34)htm

C服務器IP(192.168.17.35)rem

將A服務器做爲主服務器,域名直接解析到A服務器上,用A服務器分別來負載B服務器和C服務器 域名解析在本機配置host文件 配置完成後爲確保萬無一失,使用ping命令測試一下虛擬機

配置主服務的配置文件(nginx.conf)

打開nginx.conf,

該文件位置爲nginx安裝目錄下的conf目錄下

在http段加入如下代碼:

upstream javaDevelopment.com {

server 192.168.17.34:80;

server 192.168.5.35:80;

}

server{

listen 80;

server_name javaDevelopment.com;

location / {

proxy_pass http://www.javaDevelopment.com;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

保存重啓nginx

B、C服務器配置nginx.conf配置文件

在nginx.conf http段中加入以下代碼:

server{

listen 80;

server_name javaDevelopment.com;

index index.html;

root /data0/htdocs/www;

}

保存重啓nginx

測試在地址欄中輸入www.javaDevelopment.com網址進行訪問,看是否分配到了不一樣的服務器。

使用主機提供負載均衡服務:

就用以上例子來實現

A 服務器IP(192.168.17.33)主服務器

B服務器IP (192.168.17.34)

C服務器IP(192.168.17.35)

以前是將域名解析到主服務上(A服務器),而A服務器的功能只是至關於一個轉發功能,其實也可讓A服務器做爲站點服務。

若是添加主服務器到upstream中,那麼可能會有如下兩種狀況發生:

(1)主服務器轉發到其餘IP上,其餘IP服務器會正常處理;

(2)主服務轉發到本身的IP上,而後又進到主服務IP分配上,假如一直分配不到IP地址,則會形成一個死循環;

由於在此以前已經使用80做爲監聽負載均衡的端口了,那麼此時來處理的時候就不能使用80端口來處理了,須要從新換一個端口去處理。

在nginx.conf http段中加入如下配置

server{

listen 8090;

server_name javaDevelopment.com;

index index.html;

root /data0/htdocs/www;

}

保存重啓nginx 在地址欄中輸入wwww.javaDevelopment.com,看是否能正常訪問;

以後在upstream javaDeelopment.com{

server 192.168.17.34:80;

server 192.168.17.35:80;

server 192.168.17.33:8080; 或 server 127.0.0.0.1:8080;

}

重啓nginx

/usr/local/sbin/nginx & 或 cd /usr/local/sbin/nginx ./nginx -s reload

相關文章
相關標籤/搜索