1. 程式人生 > >基於nginx+keepalived架構實現的完整過程

基於nginx+keepalived架構實現的完整過程

安裝 nginx 負載均衡器 nginx+keepalived 監控

Nginx 安裝


1.安裝PCRE軟件包

tar zxvf pcre-8.10.tar.gz

cd pcre-8.10

./configure

make && make install


2.安裝Nginx軟件包

tar zxvf nginx-1.2.6.tar.gz

cd nginx-1.2.6

useradd -s /sbin/nologin -M www

./configure --prefix=/usr/local/nginx \

--user=www --group=www \

--with-http_stub_status_module \

--with-file-aio \

--with-http_ssl_module

make && make install


3.Nginx 配置文件和啟動

/usr/local/nginx/sbin/nginx -t #(加載配置文件)

/usr/local/nginx/sbin/nginx #(啟動)

/usr/local/nginx/sbin/nginx -s reload#(重新加載)



Nginx 負載均衡器(1+2)


0.準備過程

useradd www

mkdir -p /data/logs/

chown -R www:www /data/logs/

ulimit -SHn 102400


1.安裝 pcre

tar zxvf pcre-8.20.tar.gz

cd pcre-8.20

./configure

make && make install


2.安裝nginx

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module


3.修改nginx配置文件

user www www;

worker_processes 2;

pid /usr/local/nginx/logs/nginx.pid;

worker_rlimit_nofile 51200;

events

{

use epoll;

worker_connections 51200;

}

http

{

include mime.types;

default_type application/octet-stream;

charset utf-8;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

sendfile on;

tcp_nopush on;

keepalive_timeout 60;

tcp_nodelay on;

gzip on;

gzip_min_length 1k;

gzip_buffers 4 16k;

gzip_http_version 1.0;

gzip_comp_level 2;

gzip_types text/plain application/x-javascript text/css application/xml;

gzip_vary on;

upstream www.free.com {

ip_hash;

server 192.168.18.213:80;

server 192.168.18.214:80;

}

#access log

log_format access ‘$remote_addr - $remote_user [$time_local] "$request" ‘

‘$status $body_bytes_sent "$http_referer" ‘

‘"$http_user_agent" "$http_x_forwarded_for"‘;

access_log /data/logs/access.log access;

server {

listen 80;

server_name www.free.com;

location /{

proxy_pass http://www.free.com;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

#開啟監控功能

location /nginx{

access_log off;

stub_status on;

}

}

}


4.檢查配置文件

/usr/local/nginx/sbin/nginx -t


5.啟動nginx

/usr/local/nginx/sbin/nginx


6.重啟加載配置文件

/usr/local/nginx/sbin/nginx -s reload





Nginx+Keepalived 做負載均衡器


1.安裝 keepalived

tar zxvf keepalived-XXXX.tar.gz

./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.XXXXXXXX/

make && make install

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

service keepalived start


2.Master與Backup 的配置文件

Master:

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

}

notification_email_from [email protected]

smtp_server smtp.163.com

smtp_connect_timeout 30

router_id LVS_DEVEL

}

# VIP1

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 51

mcast_src_ip 192.168.18.211

priority 100

advert_int 5

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.18.200

}

}


BackUP:

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

}

notification_email_from [email protected]

smtp_server smtp.163.com

smtp_connect_timeout 30

router_id LVS_DEVEL

}

# VIP1

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 51

mcast_src_ip 192.168.18.212

priority 90

advert_int 5

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.18.200

}

}





監控Nginx負載均衡器腳本


1.編寫腳本

vim nginx_pid.sh

#!/bin/bash

while :

do

nginxpid=`ps -C nginx --no-header | wc -l`

if [ $nginxpid -eq 0 ];then

/usr/local/nginx/sbin/nginx

sleep 5

if [ $nginxpid -eq 0 ];then

/etc/init.d/keepalived stop

fi

fi

sleep 5

done


2.執行腳本

sh /root/nginx_pid.sh &

nohup /bin/bash /root/nginx_pid.sh &


本文出自 “眼眸刻著你的微笑” 博客,請務必保留此出處http://dengaosky.blog.51cto.com/9215128/1957263

基於nginx+keepalived架構實現的完整過程