nginx负载均衡设置入门教程

发布时间:2020-08-29编辑:脚本学堂
有关nginx负载远程的设置教程,nginx结合keepalived实现双机热备的负载均衡,Keepalvied可保证单个nginx 负载均衡器的有效性,避免单点故障,需要的朋友参考下。

nginx负载均衡,以及keepalvied双机热备的配置教程。

在反向代理配置中,nginx服务器负载均衡配置起来很方便,nginx负载均衡功能很好用,这里分享下nginx负载 均衡器的软件配置过程,帮助大家了解nginx 负载均衡的设置方法。

nginx负载均衡器的优点概括为:
1、实现可弹性化的架构,在压力增大的时候可以临时添加tomcat服务器添加到这个架构里面去;
2、upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器;
而keepalvied可保证单个nginx 负载均衡器的有效性,避免单点故障.

IP地址
 

nginx(主负载均衡器):192.168.1.106
nginx(从负载均衡器):192.168.1.107
VIP地址:192.168.1.108
tomcat1的IP:192.168.1.102
tomcat2的IP:192.168.1.103
tomcat3的IP:192.168.1.105

布置整个环境用到的软件为:
 

apache-tomcat-6.0.20.tar.gz 
jdk-6u16-linux-i586.bin 
nginx-0.7.17.tar.gz 
prce-7.7.tar.gz

以下内容为nginx负载均衡的配置过程,由(www.jb200.com)收集整理。

1、首先分别在3台tomcat主机上布置java环境,安装tomcat,具体步骤为:
安装java环境:

JDK的安装 
 

#chmod +x jdk-6u16-linux-i586.bin 
#./jdk-6u16-linux-i586.bin 
到此JDK已经安装完成 

建立符号链接 
 

# ln -s /usr/local/jdk-1.6.0-16/bin/java /usr/bin/java 
# ln -s /usr/local/jdk-1.6.0-16/bin/javac /usr/bin/javac 
ln -s /usr/local/jdk-1.6.0-16 /usr/local/jdk 
ln -s /usr/local/jdk-1.6.0-16/jre /usr/local/jre 

TOMCAT的安装 
 

#tar zxvf apache-tomcat-6.0.20.tar.gz 
#mv apache-tomcat-6.0.20 /usr/local/tomcat

设置环境变量: vim /etc/rc.d/rc.local,以追加的形式添加:
 

JAVA_HOME=/usr/local/jdk 
export JAVA_HOME 
JRE_HOME=/usr/local/jre 
export JRE_HOME 
CLASSPATH=/usr/local/tomcat/common/lib/:/usr/local/jdk/lib:/usr/local/jre/lib 
export CLASSPATH 
PATH=$PATH:/usr/local/tomcat/bin/:/usr/local/apache/bin:/usr/local/jdk/bin:/usr/local/jre/bin 
export PATH 
TOMCAT_HOME=/usr/local/tomcat 
export TOMCAT_HOME 

重启服务器,启动tomcat以检查是否存在错误: 
 

#cd /usr/local/tomcat/bin 
#./startup.sh 
 

http://IP地址:8080 可以看到猫头:)成功了?

②分别在二台nginx负载均衡器上安装nginx及配置
下载及安装nginx:
 

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz 
tar zxvf pcre-7.7.tar.gz 
cd pcre-7.7/ 
./configure 
make && make install 
wget http://sysoev.ru/nginx/nginx-0.7.17.tar.gz 
tar zxvf nginx-0.7.17.tar.gz 
cd nginx-0.7.17/ 
./configure --prefix=/usr/local/nginx --with-http_stub_status_module 
make && make install

这里贴上nginx.conf配置文件,不加任何说明,方便用X-shell直接粘贴,很人性化的噢:)二个nginx负载均衡器的文件一样,配置
完成后分别用/usr/local/nginx/sbin/nginx启动?
 

复制代码 代码示例:
user nobody nobody; 
worker_processes 1; 
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; 
server_names_hash_bucket_size 128; 
client_header_buffer_size 32k; 
large_client_header_buffers 4 32k; 
client_max_body_size 8m; 
sendfile on; 
tcp_nopush     on; 
keepalive_timeout 60; 
tcp_nodelay on; 
fastcgi_connect_timeout 300; 
fastcgi_send_timeout 300; 
fastcgi_read_timeout 300; 
fastcgi_buffer_size 64k; 
fastcgi_buffers 4 64k; 
fastcgi_busy_buffers_size 128k; 
fastcgi_temp_file_write_size 128k; 
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 backend 

server 192.168.1.102:8080; 
server 192.168.1.103:8080; 
server 192.168.1.105:8080; 

server { 
listen 80; 
server_name www.jb200.com; 
location / { 
root /var/www ; 
index index.jsp index.htm index.html; 
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_pass http://backend; 

 
#location /nginx { 
#access_log on; 
#auth_basic "NginxStatus"; 
#auth_basic_user_file /usr/local/nginx/htpasswd; 
#} 
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 /var/log/access.log access; 

}

③在二台Nginx机上安装及配置keepalived,做双机互备?
 

复制代码 代码示例:
#wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz 
#tar zxvf keepalived-1.1.15.tar.gz 
#cd keepalived-1.1.15 
#./configure 
#make 
#make install 
将keepalived做成启动脚务,方便管理: 
#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ 
#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ 
#mkdir /etc/keepalived 
#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ 
#cp /usr/local/sbin/keepalived /usr/sbin/ 
#service keepalived start|stop

在二台Nginx上,分别贴出keepalived.conf配置文件,配置完成后分别用service keepalived
start启动?检验keepalived是否成功可用命令
 

ip avrrp_instance VI_INET1 { 
        state MASTER 
        interface eth0 
        virtual_router_id 53 
        priority 200 
        advert_int 1 
        authentication { 
                auth_type pass 
                auth_pass yourpass 
        } 
        virtual_ipaddress { 
                192.168.1.108 
        } 

 
vrrp_instance VI_INET1 { 
        state BACKUP 
        interface eth0 
        virtual_router_id 53 
        priority 100 
        advert_int 1 
        authentication { 
                auth_type pass 
                auth_pass yourpass 
        } 
        virtual_ipaddress { 
                192.168.1.108 
        } 
}
 

以上三步完成nginx负载均衡设置后,开始检测负载均衡配置正确与否。
任意停掉其中一台的任何服务,其中任意一台服务器宕机后,是不会影响整个系统运作的。