Linux安装nginx、负载均衡、添加keepalived高可用

11 篇文章 0 订阅
4 篇文章 0 订阅

#一、背景
我是按照离线安装步骤写的
yum-iso链接:https://pan.baidu.com/s/1L1iqRK_uV1EgD2uHLZZ9wA 密码:b9bk
nginx软件包链接:https://pan.baidu.com/s/1MM4FVM9g2lbWE1uXTrhCMw 密码:0wei
#二、安装脚本
大致如下:
依次安装pcre、zlib、openssl、nginx
再启动nginx

#!/bin/bash
#上传yum-iso
#上传nginx
cd /root/yum-iso/
yum install -y zip unzip gcc gcc-c++ perl
unzip -x nginx.zip
cd /root/nginx
tar zxf pcre-8.37.tar.gz
cd pcre-8.37
./configure --prefix=/usr
make -j 8 && make install
cd /root/nginx/
tar zxf zlib-1.2.8.tar.gz
cd zlib-1.2.8
 ./configure --prefix=/usr
make -j 8 && make install
cd /root/nginx
tar zxf openssl-1.0.2a.tar.gz
cd openssl-1.0.2a
make -j 8 && make install
cd /root/nginx/
tar zxf nginx-1.8.0.tar.gz
cd nginx-1.8.0
 ./configure --prefix=/usr/local/nginx
make -j 8 && make install
/usr/local/nginx/sbin/nginx 

#三、测试

ps -ef|grep nginx

这里写图片描述
说明安装成功!

#四、加缓存
nginx.conf模板


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;


    keepalive_timeout  65;

        client_body_buffer_size 512k;
        proxy_connect_timeout 5;
        proxy_read_timeout 60;
        proxy_send_timeout 5;
        proxy_buffer_size 16k;
        proxy_buffers 4 64k;
        proxy_busy_buffers_size 128k;
        proxy_temp_file_write_size 128k;
        proxy_temp_path temp;
#        proxy_cache_path /data/nginx/tmp-test  cache levels=1:2 keys_zone=cache_one:500m inactive=7d max_size=30g;

        proxy_cache_path /data/nginx/tmp-test levels=1:2 keys_zone=cache_one:500m inactive=7d max_size=30g;




    server {
        listen       80;
        server_name  localhost;


        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

}
upstream nodeServer{
	server 172.16.100.130:8002;
	server 172.16.100.136:8002;
	server 172.16.100.137:8002;
}

server{
	listen 8002;
	location / {
		proxy_pass http://nodeServer;
        proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout 180;
           proxy_send_timeout 180;
           proxy_read_timeout 180;
            proxy_buffer_size 128k;
            proxy_buffers 4 128k;
            proxy_busy_buffers_size 128k;
            proxy_temp_file_write_size 128k;
    #        proxy_cache cache_one;
            proxy_cache_valid 200 302 304 30d;
            proxy_cache_valid 404 1m;
            proxy_cache_key   $host$uri$is_args$args;
            add_header Nginx-Cache $upstream_cache_status;
            proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;
                    expires 30d;
		
	}


}



upstream staticServer{
        server 172.16.100.130:9090;
        server 172.16.100.136:9090;
        server 172.16.100.137:9090;
}

server{
        listen 9090;
        location /{
                proxy_pass http://staticServer;
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout 180;
           proxy_send_timeout 180;
           proxy_read_timeout 180;
            proxy_buffer_size 128k;
            proxy_buffers 4 128k;
            proxy_busy_buffers_size 128k;
            proxy_temp_file_write_size 128k;
    #        proxy_cache cache_one;
            proxy_cache_valid 200 302 304 30d;
            proxy_cache_valid 404 1m;
            proxy_cache_key   $host$uri$is_args$args;
            add_header Nginx-Cache $upstream_cache_status;
            proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;
                    expires 30d;
        }


}




upstream tomcatServer{
        server 172.16.100.130:8080;
        server 172.16.100.136:8080;
        server 172.16.100.137:8080;
}

server{
        listen 8080;
        location / {
                proxy_pass http://tomcatServer;
proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout 180;
           proxy_send_timeout 180;
           proxy_read_timeout 180;
            proxy_buffer_size 128k;
            proxy_buffers 4 128k;
            proxy_busy_buffers_size 128k;
            proxy_temp_file_write_size 128k;
    #        proxy_cache cache_one;
            proxy_cache_valid 200 302 304 30d;
            proxy_cache_valid 404 1m;
            proxy_cache_key   $host$uri$is_args$args;
            add_header Nginx-Cache $upstream_cache_status;
            proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;
                    expires 30d;
        }
}
}


#五、加keepalived

【安装部署keepalived】
yum -y install libnl libnl-devel libnfnetlink libnfnetlink-devel  openssl openssl-devel   


#可能会遇到:
#没有可用软件包 libnfnetlink-devel。
下载地址:https://altlinux.pkgs.org/sisyphus/classic-x86_64/libnfnetlink-devel-1.0.1-alt1.x86_64.rpm.html


#如果libnfnetlink libnfnetlink-devel没有yum安装成功则手动rpm -vh安装
rpm -ivh libnfnetlink-1.0.0-1.el6.x86_64.rpm
rpm -ivh libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm

mkdir -p /data/sh /etc/keepalived
\cp check_nginx.sh /data/sh/
chmod +x /data/sh/check_nginx.sh
#修改nginx对应的端口号
vim /data/sh/check_nginx.sh

#上传ipvsadm包
rpm -ivh ipvsadm-1.26-4.el6.x86_64.rpm
#上传keepalived包
tar zxf keepalived-1.3.6.tar.gz 
cd keepalived-1.3.6
./configure
make -j 8 &&  make -j install
\cp keepalived/etc/init.d/keepalived /etc/rc.d/init.d/
\cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/  
\cp /usr/local/sbin/keepalived /usr/sbin/
modprobe ip_vs_wlc
modprobe ip_vs
\cp ../10keepalived.conf /etc/keepalived/keepalived.conf
vim /etc/keepalived/keepalived.conf
#需要改的有几个:
#1、路由ID、密码相同
#2、网卡名
#3、priority优先级,每台机器必须不同
#4、virtual_router_id 的值     //每台机器不同
#5、VIP虚拟IP
    virtual_ipaddress {
        #192.168.23.245
		#VIP:同一内网网段的、额外的一个空的虚拟IP地址
		
    }

/etc/init.d/keepalived start

121 /etc/keepalived/keepalived.conf

! Configuration File for keepalived 
global_defs { 
    notification_email { 
        tdt@163.com 
    }
    notification_email_from tdt@163.com 
    smtp_server 127.0.0.1 
    smtp_connect_timeout 30 
    router_id LVS_DEVEL 
} 
vrrp_script chk_nginx { 
    script "/data/sh/check_nginx.sh" 
    interval 2 
    weight 2 
}
# VIP1 
vrrp_instance VI_1 { 
    state BACKUP 
    interface em1
    lvs_sync_daemon_inteface em1
    virtual_router_id 50
    priority 100   
    advert_int 5 
    nopreempt 
    authentication { 
        auth_type PASS 
        auth_pass tdtqianzhi10
    } 
    virtual_ipaddress { 
        10.6.130.133
    }
    track_script {
    chk_nginx
    }
}

122

! Configuration File for keepalived 
global_defs { 
    notification_email { 
        tdt@163.com 
    }
    notification_email_from tdt@163.com 
    smtp_server 127.0.0.1 
    smtp_connect_timeout 30 
    router_id LVS_DEVEL 
} 
vrrp_script chk_nginx { 
    script "/data/sh/check_nginx.sh" 
    interval 2 
    weight 2 
}
# VIP1 
vrrp_instance VI_1 { 
    state BACKUP 
    interface em1
    lvs_sync_daemon_inteface em1
    virtual_router_id 51
    priority 101  
    advert_int 5 
    nopreempt 
    authentication { 
        auth_type PASS 
        auth_pass tdtqianzhi10
    } 
    virtual_ipaddress { 
        10.6.130.133
    }
    track_script {
    chk_nginx
    }
}

123

! Configuration File for keepalived 
global_defs { 
    notification_email { 
        tdt@163.com 
    }
    notification_email_from tdt@163.com 
    smtp_server 127.0.0.1 
    smtp_connect_timeout 30 
    router_id LVS_DEVEL 
} 
vrrp_script chk_nginx { 
    script "/data/sh/check_nginx.sh" 
    interval 2 
    weight 2 
}
# VIP1 
vrrp_instance VI_1 { 
    state BACKUP 
    interface em1
    lvs_sync_daemon_inteface em1
    virtual_router_id 52 
    priority 102
    advert_int 5 
    nopreempt 
    authentication { 
        auth_type PASS 
        auth_pass tdtqianzhi10
    } 
    virtual_ipaddress { 
        10.6.130.133
    }
    track_script {
    chk_nginx
    }
}

测试keepalived
看VIP目前指向哪台机器,VIP指向在哪台服务器上出现,说明现在VIP指向谁。

ip  a

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值