因爲很久沒有接觸過負載相關的調試了複習一下html
實驗系統:linux
(1)CentOS 6.5_x86_64;nginx
(2)共有二臺主機,本實驗以ip地址來命名主機,即10主機、11主機。web
實驗前提:防火牆和selinux都關閉,主機之間時間同步apache
實驗軟件:nginx-1.10.2-1.el6.x86_6四、keepalived-1.2.13-5.el6_6.x86_6四、httpd-2.2.15-59.el6.centos.x86_64
爲了方便實驗只起了2臺虛機方便測試,每臺虛機上都安裝nginx、keepalived、httpd,邏輯拓撲圖以下vim
1、安裝配置keepalivedcentos
1.直接使用yum安裝:服務器
yum -y install keepalived nginx httpd #若是nginx沒法安裝先安裝epel源,或者編譯安裝
ide
2.在34主機上配置keepalived:測試
vim /etc/keepalived/keepalived.conf
--------------------------------------------
global_defs { //此段配置忽略
notification_email {
acassen@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id master
}
vrrp_instance VI_1 {
state MASTER //定義爲MASTER主機
interface eth0
virtual_router_id 55 //虛擬id
priority 100 //優先級
advert_int 1 //檢測間隔
authentication {
auth_type PASS //認證方式
auth_pass abcd //認證密碼
}
virtual_ipaddress {
192.168.1.15 brd 192.168.1.255 dev eth0
}
# notify_master "/etc/init.d/nginx start" //成爲MASTER以後執行的動做
# notify_backup "/etc/init.d/nginx stop" //成爲BACKUP以後執行的動做
# notify_fault "/etc/init.d/nginx stop" //FAULT以後執行的動做
}
3.將配置文件傳到11主機,修改紅色部分:
4.兩臺主機啓動keepalived服務,如今10這臺主機爲MASTER,因此服務都起在這臺主機上:
service keepalived start
ip addr show
若是10中止keeplived後,觀察11上的vip是否有啓動。若是沒啓動請排查緣由,多半是配置文件寫錯了。
另外有個問題須要注意,若是在master停掉後,backup是能夠接過來的,可是master再啓動,是接不回去的,只有停掉backup才能夠回交給master。
五、配置nginx代理服務器
upstream webservers {
server 192.168.1.10:8000; ##apache-realserver地址
server 192.168.1.11:8000; ##apache-realserver地址
}
server {
listen 80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://webservers;
proxy_set_header X-Real-IP $remote_addr;
}
}
這裏標記了主要部分
六、配置Apache的realserver部分
爲了方便測試默認配置基本不用動,主要修改Listen端口爲8000
用於區分訪問兩臺realserver的不一樣每一個文件裏的內容修改成:
七、最終測試
訪問兩次的結果分別訪問了不一樣的realserver。測試成功(由於nginx上沒有配置ip_hash)因此每次訪問到了不一樣的realserver