centos镜像安装nginx和keepalived

镜像

  • 安装nginx(http模块:nginx_upstream_check_module)
yum install -y gcc gcc-c++
yum install -y pcre pcre-devel openssl openssl-devel zlib zlib-devel
yum install -y patch wget unzip vim

wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -xzvf nginx-1.12.2.tar.gz

wget https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master
unzip master
cd nginx-1.12.2

patch -p1 < /root/nginx_upstream_check_module-master/check_1.12.1+.patch
./configure --prefix=/usr/local/nginx --add-module=/root/nginx_upstream_check_module-master
make && make install


vim /etc/profile
PATH=$PATH:/usr/local/nginx/sbin
export PATH

source /etc/profile

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target

#检测是否无误
nginx -t

  • 安装nginx低版本1.9之下(tcp模块:nginx_tcp_proxy_module)
yum install -y gcc gcc-c++
yum install -y pcre pcre-devel openssl openssl-devel zlib zlib-devel
yum install -y patch wget unzip vim git

wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar -xzvf nginx-1.8.0.tar.gz

git clone https://github.com/yaoweibin/nginx_tcp_proxy_module.git
patch -p1 < ./nginx_tcp_proxy_module/tcp.patch

./configure --add-module=/path/to/nginx_tcp_proxy_module
make
make install
  • 安装nginx高版本1.10之上(tcp模块:ngx_healthcheck_module)
yum install -y gcc gcc-c++
yum install -y pcre pcre-devel openssl openssl-devel zlib zlib-devel
yum install -y patch wget unzip vim git
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -xzvf nginx-1.12.2.tar.gz

git clone https://github.com/zhouchangxun/ngx_healthcheck_module.git
patch -p1 < ./ngx_healthcheck_module/nginx_healthcheck_for_nginx_1.12+.patch

cd nginx-1.12.2/
.configure --with-stream --add-module=../ngx_healthcheck_module/
make
make install
  • 启动nginx
docker run --privileged -d --name nginx nginx:版本 init
source /etc/profile
nginx -t #检查是否有误
  • 安装keepalived
yum install -y libnl*
yum install -y libnfnetlink-devel zlib zlib-devel gcc gcc-c++ openssl openssl-devel openssh
yum -y install vim  iproute lrzsz

cd keepalived-1.3.5/
./configure --prefix=/usr/local/keepalived
make
make install
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
[root@master-1 keepalived-1.3.5]# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
       router_id master-1
   }

vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.214.100
    }
    track_script {
        chk_nginx
    }
}


  • nginx_check.sh
#!/bin/bash
A=`netstat -ntlp | grep :80 | wc -l`
if [ $A -eq 0 ];then
        pkill keepalived
fi

image

如果启动失败image

修改keepalived.service配置文件(vim /lib/systemd/system/keepalived.service)(systemctl daemon-reload)
image

modprobe ip_vs
modprobe ip_vs_wrr

docker run -it -d   --privileged --network=host --name keepalived keepalived:v1 init

image
重启docker

猜你喜欢

转载自blog.csdn.net/qq_42747099/article/details/88912257
今日推荐