第五節 Nginx集羣

 

 

 

 

 

 

 

給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

 

測試  

相關文章
相關標籤/搜索