千家信息网

nginx+中怎么实现集群负载均衡

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章将为大家详细讲解有关nginx+中怎么实现集群负载均衡,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一,配置nginx安装nginx包a.安装
千家信息网最后更新 2025年01月24日nginx+中怎么实现集群负载均衡

这篇文章将为大家详细讲解有关nginx+中怎么实现集群负载均衡,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

一,配置nginx
安装nginx包

a.安装pcre

tar zxvf pcre-7.2.tar.gz

cd pcre

./configure --prefix = /pcre

Make;make install

b,安装nginx

tar zxvf nginx-0.6.32.tar.gz

cd nginx-0.6.32

./configure --prefix=/nginx -with-pcre=/pcre --with-http_rewrite_module

Make;make install

3, 修改配置文件

Vi /nginx/conf/nginx.conf

#用户组

user nobody nobody;

#cpu个数,可以按照实际服务器来计算

worker_processes 8;

worker_rlimit_nofile 51200;

events {

use epoll;

#连接数

worker_connections 8192 ;

}

http {

include mime.types;

default_type application/octet-stream;

server_names_hash_bucket_size 128;

# access_log off;

# access_log logs/access.log;

#缓存的时间,(可以根据不同文件设置不同时间)

# expires 2h;

tcp_nodelay on;

keepalive_timeout 30;

gzip on;

gzip_min_length 10;

gzip_buffers 4 8k;

gzip_http_version 1.1;

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

sendfile on;

tcp_nopush on;

reset_timedout_connection on;

client_max_body_size 30m;

#设定负载均衡列表

upstream backend

{

server 172.23.254.2:8080;

server 172.23.254.3:8080;

}

#设定虚拟主机

server {

listen 80;

server_name www.abc.com;

#对 / 所有做负载均衡(本机nginx采用完全转发,所有请求都转发到后端的tomcat集群)

location / {

root /web/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;

}

}

}

主要在配置proxy与upstream

Upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器。

4,启动程序

/nginx/sbin/nginx

5,编写启动脚本

Vi nginx.sh

#!/bin/sh

CWD=`pwd`


case $1 in
start)
/nginx/sbin/nginx;
;;
stop)
kill -2 `ps -ef|grep "/nginx/sbin/nginx"|grep -v "grep"|awk '{print $2}' `
;;
restart)
cd "$CMD"
$0 stop
$0 start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

二,配置tomcat

1, 下载tomcat5.59

tar zxvf tomcat5.59

2,修改配置文件

a,配置数据源

b,优化tomcat最大并发数

maxThreads="2048" minSpareThreads="100" maxSpareThreads="200"

enableLookups="false" redirectPort="8443" acceptCount="500"

connectionTimeout="20000" disableUploadTimeout="true" />

c,添加虚拟主机

(注,主转发的虚拟主机必须用localhost,否则nginx不能通过内网ip转发,而只有通过域名转发

d,测试

打开http://ip:8080

页面能访问则正常

2, 其他的tomcat服务器也用同样的配置

三,做tomcat集群

两台机器 172.23.254.2 172.23.254.3

做集群需要修改的文件配置有三个地方

1,修改conf/server.xml配置文件
a. 找到Engine标签,加入属性 jvmRoute="worker1"

b.找到Cluster标签,去掉注释,同时修改tcpListenAddress为本机ip 172.23.254.2 (注:这一段Cluster必须放在hosts里面)

2, 修改应用的web.xml

修改web应用里面WEB-INF目录下的web.xml文件,加入标签

直接加在之前就可以了

这个是加入tomcat的session复制的,做tomcat集群必须需要这一步,否则用户的session就无法正常使用。

3, 开启防火墙

这两个tomcat之间必须开启防火墙信任。

分别启动两个tomcat,查看每一个tomcat是否都启动了8080端口以及4001端口

再用netstat -an 查看链接情况

tcp 0 0 172.23.254.2:43320 172.23.254.3:4001 ESTABLISHED

tcp 0 0 172.23.254.2:46544 172.23.254.3:4001 TIME_WAIT

tcp 0 0 172.23.254.2:40118 172.23.254.3:4001 ESTABLISHED

tcp 0 0 172.23.254.2:4001 172.23.254.3:48804 ESTABLISHED

tcp 0 0 172.23.254.2:4001 172.23.254.3:34254 ESTABLISHED

如果两台机器的4001端口分别建立了连接,则说明集群配置成功,可以进行session复制。

关于nginx+中怎么实现集群负载均衡就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0