給140和143安裝Nginxphp
#web02
[root@web02 ~]# sh nginx_install
[root@web02 ~]# echo web02 > /usr/local/nginx/html/index.html
[root@web02 ~]# yum -y install elinks &>/dev/null
[root@web02 ~]# /usr/local/nginx/sbin/nginx
[root@web02 ~]# elinks http://localhost -dump
web02html
配置140的confignginx
刪除不須要的配置信息web
sed -i '/#/d' nginx.conf
sed -i '/^$/d' nginx.conf算法
刪掉location下的數據瀏覽器
配置upstreambash
檢查服務器
輪流分發網絡
Nginx分發算法app
基於輪訓分發
修改config文件
保存 重啓Nginx
ip_hash
修改config文件
保存 重啓Nginx
使用41訪問
服務器狀態
修改config狀態爲backup
由於是backup 和 ip_hash 沒法同時使用(Ip_hash balancer does not support backup servers and weight)
刪除掉ip_hash後
142down的時候
基於請求頭(host)的分發
修改config
保存 重啓Nginx
用143修改hosts文件
143訪問
基於開發語言分發
killall 142的Nginx
安裝Apache php
yun -y install httpd php
修改140的config
保存 重啓 Nginx
142啓動Apache
systemctl start httpd
寫php頁面
echo "<?php phpinfo(); ?>" > /var/www/html/index.php
瀏覽器訪問 http://192.168.0.142/index.php
瀏覽器訪問http://192.168.0.140/index.html
瀏覽器訪問http://192.168.0.140/index.php (此處的IP是140 不是142)
基於瀏覽器分發
修改142作個虛擬主機
中止Apache
創建虛擬主機
修改config文件
建立web3文件夾
訪問
修改140的config
保存重啓Nginx
140訪問
142訪問
143訪問
谷歌訪問
其餘瀏覽器訪問
源於IP分發
修改config
保存重啓
141訪問
142訪問
其餘ip訪問
高可用集羣
修改140 config
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream web {
server 192.168.0.142;
server 192.168.0.143;
}
server {
listen 80;
server_name www.web1.com;
location / {
proxy_pass http://web;
}
}
}
測試分發
拷貝config文件到141
scp nginx.conf 192.168.0.141:/usr/local/nginx/conf/
測試
配置keepalived.con
進入
修改
!Configuration File for keepalived
global_defs {
router_id NGINX_DEVEL
}
vrrp_script check_nginx {
script "/etc/keepalived/nginx_pid.sh"
interval 2
fall 1
}
}
vrrp_instance nginx {
state MASTER
interface ens33
mcast_src_ip 192.168.0.140
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
check_nginx
}
virtual_ipaddress {
192.168.0.213/24
}
}
配置nginx_pid.sh
/etc/keepalived/nginx_pid.sh
#!/bin/bash
nginx_kp_check () {
nginxpid=`ps -C nginx --no-header |wc -l`
if [ $nginxpid -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 1
nginxpid=`ps -C nginx --no-header |wc -l`
if [ $nginxpid -eq 0 ];then
systemctl stop keepalived
fi
fi
}
檢查 是否有213的ip
啓動
systemctl restart keepalived
檢查213ip
訪問213
tcpdump -nn -vvv -i ens33 vrrp
檢測網絡包
拷貝140的config文件到141上
修改141的config文件
拷貝nginx_pid.sh
啓動141的keepalived
檢查141的ip 沒有213IP 由於是備份的
模擬主機掛掉
打開141 的message
中止140主機的Nginx
檢查140的是否 自動啓動
沒有自動啓動由於腳本有問題
緣由腳本沒有給權限
增長權限140 141
從新啓動keepalived141
killall後 檢查
自動重啓
檢查systemctl status keepalived.service 出現
Error exec-ing command '/etc/keepalived/nginx_pid.sh', error 2: No such file or directory
解決方法 https://blog.csdn.net/yuyedewutong/article/details/82530757
測試