負載均衡
先來簡單了解壹下什麽是負載均衡,單從字面上的意思來理解就可以解釋N臺服務器平均分擔負載,不會因為某臺服務器負載高宕機而某臺服務器閑置的情況。那麽負載均衡的前提就是要有多臺服務器才能實現,也就是兩臺以上即可。
測試環境
在VMware裏安裝了三臺。
A服務器IP :192.168.0.219 (主)
B服務器IP :192.168.0.119
C服務器IP :192.168.0.109
部署思路
A服務器做為主服務器,域名直接解析到A服務器(192.168.0.219)上,由A服務器負載均衡到B服務器(192.168.0.119)與C服務器(192.168.0.109)上。
在A服務器上,upstream指令——分配負載
vi /etc/nginx/conf.d/default.conf
upstream 192.168.0.219 {
server 192.168.0.119:80;
server 192.168.0.109:80;
}
server {
listen 80;
server_name 192.168.0.219;
charset utf8;
location / {
proxy_pass
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服務器上,
vi /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name 192.168.0.219;
index index.html;
root /usr/share/nginx/html;
}
保存重啟nginx
測試
當訪問的時候,為了區分是轉向哪臺服務器處理我分別在B、C服務器下寫壹個不同內容的index.html文件,以作區分。
打開瀏覽器訪問a.com結果,刷新會發現所有的請求均分別被主服務器(192.168.5.149)分配到B服務器(192.168.0.119)與C服務器(192.168.0.109)上,實現了負載均衡效果。
主服務器不能提供服務嗎?
以上例子中,我們都是應用到了主服務器負載均衡到其它服務器上,那麽主服務器本身能不能也加在服務器列表中,這樣就不會白白浪費拿壹臺服務器純當做轉發功能,而是也參與到提供服務中來。
怎麽解決這個問題呢?因為80端口已經用來監聽負載均衡的處理,那麽本服務器上就不能再使用80端口來處理192.168.0.219的訪問請求,得用壹個新的。
於是我們在主服務器中編輯/etc/nginx/conf.d/default.conf,添加以下內容
server {
listen 8080;
server_name 192.168.0.219;
index index.html;
root /usr/share/nginx/html;
}
重啟nginx
然後,再重新渡負載均衡。
更多Nginx相關教程見以下內容 :
CentOS 6.2實戰部署Nginx+MySQL+PHP
使用Nginx搭建WEB服務器
搭建基於Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服務器全過程
CentOS 6.3下Nginx性能調優
CentOS 6.3下配置Nginx加載ngx_pagespeed模塊
CentOS 6.4安裝配置Nginx+Pcre+php-fpm
Nginx安裝配置使用詳細筆記
Nginx日誌過濾 使用ngx_log_if不記錄特定日誌