基於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架構實現的完整過程