#一、背景
我是按照离线安装步骤写的
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