第五节 Nginx集群
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第五节 Nginx集群相关的知识,希望对你有一定的参考价值。
给140和143安装nginx
#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
web02
配置140的config
删除不需要的配置信息
sed -i \'/#/d\' nginx.conf
sed -i \'/^$/d\' nginx.conf
删掉location下的数据
配置upstream
检查
轮流分发
Nginx分发算法
基于轮训分发
修改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
测试
以上是关于第五节 Nginx集群的主要内容,如果未能解决你的问题,请参考以下文章