Nginx 和 tomcat 实现负载均衡
  qxuulBwtA3Q2 2023年11月02日 74 0

Nginx 和 tomcat 实现负载均衡_tomcat

一、Nginx 服务器开启路由转发功能,客户端和 tomcat 服务

器配置 IP 地址设置正确

1、配置 Nginx 服务 IP 地址和路由转发功能

1)Nginx 服务器生成网卡配置文件

[root@centos01 ~]# cd /etc/sysconfig/network-scripts/
[root@centos01 network-scripts]# cp ifcfg-ens3 ifcfg-ens34

Nginx 和 tomcat 实现负载均衡_nginx_02

2)配置内网网卡 IP 地址

[root@centos01 network-scripts]# vim ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.10
NETMASK=255.255.255.0

Nginx 和 tomcat 实现负载均衡_tomcat_03

3)配置外网网卡 IP 地址

[root@centos01 network-scripts]# vim ifcfg-ens34
TYPE=Ethernet
BOOTPROTO=static
NAME=ens34
DEVICE=ens34
ONBOOT=yesIPADDR=192.168.200.10
NETMASK=255.255.255.0
DNS1=192.168.200.10
[root@centos01 network-scripts]# cd

Nginx 和 tomcat 实现负载均衡_centos_04

4)重新启动服务查看 IP 地址

[root@centos01 ~]# systemctl restart network
[root@centos01 ~]# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.10 netmask 255.255.255.0 broadcast
192.168.100.255
inet6 fe80::20c:29ff:fe4c:c769 prefixlen 64 scopeid
0x20<link>
ether 00:0c:29:4c:c7:69 txqueuelen 1000 (Ethernet)
RX packets 6710 bytes 592968 (579.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4699 bytes 763176 (745.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens34: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.10 netmask 255.255.255.0 broadcast
192.168.200.255 inet6 fe80::20c:29ff:fe4c:c773 prefixlen 64 scopeid
0x20<link>
ether 00:0c:29:4c:c7:73 txqueuelen 1000 (Ethernet)
RX packets 615 bytes 87838 (85.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 469 bytes 63284 (61.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Nginx 和 tomcat 实现负载均衡_nginx_05

5)配置路由转发功能开启路由功能


[root@centos01 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@centos01 ~]# sysctl -p
net.ipv4.ip_forward = 1

Nginx 和 tomcat 实现负载均衡_nginx_06

Nginx 和 tomcat 实现负载均衡_tomcat_07

2、第一台 tomcat 服务器配置 IP 地址

1)第一台 tomcat 服务器配置 IP 地址

[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.20
NETMASK=255.255.255.0GATEWAY=192.168.100.10

Nginx 和 tomcat 实现负载均衡_centos_08

2)重新启动网卡服务查看配置的网关

[root@centos02 ~]# systemctl restart network
[root@centos02 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
0.0.0.0 192.168.100.10 0.0.0.0 UG 100 0 0
ens32
192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0
ens32
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0
virbr0

Nginx 和 tomcat 实现负载均衡_tomcat_09

3、第二台 tomcat 服务器配置 IP 地址

1)修改网卡置文件

[root@centos03 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.30NETMASK=255.255.255.0
GATEWAY=192.168.100.10

Nginx 和 tomcat 实现负载均衡_tomcat_10

2)重启网卡服务查看配置的网关


[root@centos03 ~]# systemctl restart network
[root@centos03 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
0.0.0.0 192.168.100.10 0.0.0.0 UG 100 0 0
ens32
192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0
ens32
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0
virbr0

Nginx 和 tomcat 实现负载均衡_tomcat_11

4、客户端配置 IP 地址和 DNS

1)客户端配置 IP 地址和 DNS

Nginx 和 tomcat 实现负载均衡_tomcat_12

2)查看配置的 IP 地址

Nginx 和 tomcat 实现负载均衡_centos_13

二、安装 tomcat 服务器配置网站

1、安装第一台 tomcat 服务器

1)切换到程序光盘

Nginx 和 tomcat 实现负载均衡_nginx_14

2)挂载程序光盘到/mnt

[root@centos02 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos02 ~]# ls /mnt/
amoeba-mysql-binary-2.2.0.tar.gz nagios-plugins-1.5.tar.gz
apache-tomcat-7.0.54.tar.gz nginx-1.6.0.tar.gz
awstats-7.3.tar.gz nrpe-2.15.tar.gz
cacti-0.8.8b.tar.gz OpenStack.rar
cmake-2.8.6.tar.gz OpenVPN.rar

Nginx 和 tomcat 实现负载均衡_tomcat_15

3)解压 tomcat 移动 tomcat 安装位置

[root@centos02 ~]# tar zxvf /mnt/apache-tomcat-7.0.54.tar.gz -C 
/usr/src/
[root@centos02 ~]# mv /usr/src/apache-tomcat-7.0.54/
/usr/local/tomcat

Nginx 和 tomcat 实现负载均衡_nginx_16

2、配置第一台 tomcat 服务器

1)创建网站服务器根目录设置网站主页


[root@centos02 ~]# mkdir /www/
[root@centos02 ~]# echo "www.benet.com" > /www/index.jsp

Nginx 和 tomcat 实现负载均衡_centos_17

2)修改 tomcat 主配置文件加载网站根目录


[root@centos02 ~]# vim /usr/local/tomcat/conf/server.xml
124 <Host name="localhost" appBase="webapps"
125 unpackWARs="true" autoDeploy="true">
126 <Context docBase="/www/" path="" reloadable="fales">
</Context>

Nginx 和 tomcat 实现负载均衡_centos_18

3)启动 tomcat 服务查看服务运行状态

[root@centos02 ~]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usrUsing CLASSPATH:
/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat
juli.jar
Tomcat started.
[root@centos02 ~]# netstat -anptu | grep java
tcp6 0 0 :::8080 :::* LISTEN
3805/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN
3805/java
tcp6 0 0 :::8009 :::* LISTEN
3805/java

Nginx 和 tomcat 实现负载均衡_tomcat_19

Nginx 和 tomcat 实现负载均衡_nginx_20

3、安装第二台 tomcat 服务器

1)切换到程序光盘

Nginx 和 tomcat 实现负载均衡_centos_21

2)挂载程序光盘到/mnt


[root@centos03 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos03 ~]# ls /mnt/
amoeba-mysql-binary-2.2.0.tar.gz nagios-plugins-1.5.tar.gz
apache-tomcat-7.0.54.tar.gz nginx-1.6.0.tar.gz
awstats-7.3.tar.gz nrpe-2.15.tar.gz
cacti-0.8.8b.tar.gz OpenStack.rar
cmake-2.8.6.tar.gz OpenVPN.rar

Nginx 和 tomcat 实现负载均衡_centos_22

3)解压 tomcat 移动 tomcat 安装位置

[root@centos03 ~]# tar zxvf /mnt/apache-tomcat-7.0.54.tar.gz -C 
/usr/src/
[root@centos03 ~]# mv /usr/src/apache-tomcat-7.0.54/
/usr/local/tomcat

Nginx 和 tomcat 实现负载均衡_centos_23

4、配置第二台 tomcat 服务器

1)创建网站服务器根目录设置网站主页

[root@centos03 ~]# mkdir /www/
[root@centos03 ~]# echo "www.accp.com" > /www/index.jsp

Nginx 和 tomcat 实现负载均衡_tomcat_24

2)修改 tomcat 主配置文件加载网站根目录

[root@centos03 ~]# vim /usr/local/tomcat/conf/server.xml
124 <Host name="localhost" appBase="webapps"
125 unpackWARs="true" autoDeploy="true">
126 <Context docBase="/www/" path="" reloadable="fales">
</Context>

Nginx 和 tomcat 实现负载均衡_centos_25

3)启动 tomcat 服务查看服务运行状态

[root@centos03 ~]# /usr/local/tomcat/bin/startup.sh 
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usrUsing CLASSPATH:
/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat
juli.jar
Tomcat started.
[root@centos03 ~]# netstat -anptu | grep java
tcp6 0 0 :::8080 :::* LISTEN
3805/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN
3805/java
tcp6 0 0 :::8009 :::* LISTEN
3805/java

Nginx 和 tomcat 实现负载均衡_centos_26

三、安装 Nginx 代理和负载均衡功能配置 DNS 服务器域名解析,客户端使用域名www.nlb.com负载均衡访问网站

1、安装 Nginx 反向代理依赖软件和 DNS 服务

1)切换到系统光盘

Nginx 和 tomcat 实现负载均衡_tomcat_27

2)挂载系统盘到/mnt 目录


[root@centos01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos01 ~]# ls /mnt/
CentOS_BuildTag EULA images LiveOS repodata RPM
GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7
TRANS.TBL

Nginx 和 tomcat 实现负载均衡_centos_28

3)删除系统自带 yum 源配置本地 yum 源

[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-*
[root@centos01 ~]# vim /etc/yum.repos.d/local.repo
[local]
name=centos
baseurl=file:///mnt
enabled=1
gpgcheck=0

Nginx 和 tomcat 实现负载均衡_centos_29

4)安装依赖程序

[root@centos01 ~]# yum -y install pcre-devel zlib-devel openssl-devel bind bind-chroot bind-utils

Nginx 和 tomcat 实现负载均衡_centos_30

5)创建管理 nginx 服务用户

[root@centos01 ~]# useradd -M -s /sbin/nologin nginx

Nginx 和 tomcat 实现负载均衡_nginx_31

2、配置 Nginx 代理服务器

1) 切换到程序光盘

Nginx 和 tomcat 实现负载均衡_centos_32

2)挂载程序光盘到/mnt 目录

[root@centos01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos01 ~]# ls /mnt/
amoeba-mysql-binary-2.2.0.tar.gz nagios-plugins-1.5.tar.gz
apache-tomcat-7.0.54.tar.gz nginx-1.6.0.tar.gz
awstats-7.3.tar.gz nrpe-2.15.tar.gz
cacti-0.8.8b.tar.gz OpenStack.rar

Nginx 和 tomcat 实现负载均衡_nginx_33

3)配置 nginx

[root@centos01 ~]# tar zxvf /mnt/nginx-1.6.0.tar.gz -C /usr/src/
[root@centos01 ~]# cd /usr/src/nginx-1.6.0/
[root@centos01 nginx-1.6.0]# ./configure \ //配置nginx
--prefix=/usr/local/nginx \ //指定安装位置
--user=nginx \ //管理nginx服务用户
--group=nginx \ //管理nginx服务组
--with-file-aio \ //启用文件修改
--with-http_stub_status_module \ //加载统计模块
--with-http_gzip_static_module \ //支持gizp压缩
--with-http_flv_module \ //支持内存使用时间偏移
--with-http_ssl_module //支持https功能

Nginx 和 tomcat 实现负载均衡_tomcat_34

4)编译安装 Nginx

[root@centos01 nginx-1.6.0]# make && make install

Nginx 和 tomcat 实现负载均衡_centos_35

5)优化 Nginx 服务命令

[root@centos01 nginx-1.6.0]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
[root@centos01 nginx-1.6.0]# cd

Nginx 和 tomcat 实现负载均衡_centos_36

3、修改 Nginx 主配置配置支持负载均衡群集

1)修改 Nginx 主配置文件

[root@centos01 ~]# vim /usr/local/nginx/conf/nginx.conf
user nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream tomcat_server { //创建服务器池名字tomcat_server
server 192.168.100.20:8080 weight=1; //服务器池第一台web,权重轮询
server 192.168.100.30:8080 weight=1; //服务器池第二台web,权重轮询
}
include mime.types;
default_type application/octet-stream; sendfile on;
keepalive_timeout 65;
server {
listen 80; //虚拟主机监听端口
server_name www.nlb.com; //虚拟主机域名
charset utf-8;
access_log logs/www.nlb.access.log;
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat_server; //访问网站转发服务器池提供服务
}
}
}

Nginx 和 tomcat 实现负载均衡_nginx_37

2)检查 Nginx 主配置文件是否错误

[root@centos01 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf
syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

Nginx 和 tomcat 实现负载均衡_nginx_38

3)启动服务查看端口

[root@centos01 ~]# nginx
[root@centos01 ~]# netstat -anptu | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4820/nginx: master

Nginx 和 tomcat 实现负载均衡_nginx_39

4、配置 DNS 服务器

1)修改 DNS 服务器主配置文件检查是否错误


1)修改 DNS 服务器主配置文件检查是否错误
[root@centos01 ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.200.10; };
directory "/var/named";
};
zone "nlb.com" IN {
type master;
file "/var/named/nlb.com.zone";
};
[root@centos01 ~]# named-checkconf /etc/named.conf

Nginx 和 tomcat 实现负载均衡_nginx_40

Nginx 和 tomcat 实现负载均衡_nginx_41

2)配置 DNS 服务于数据库文件

[root@centos01 ~]# vim /var/named/nlb.com.zone$TTL 86400
@ SOA nlb.com. root.nlb.com. (
2022090210
1H
15M
1W
1D
)
@ NS centos01.nlb.com.
centos01 A 192.168.200.10
www A 192.168.200.10
[root@centos01 ~]# named-checkzone nlb.com /var/named/nlb.com.zone
zone nlb.com/IN: loaded serial 2022090210
OK

Nginx 和 tomcat 实现负载均衡_tomcat_42

Nginx 和 tomcat 实现负载均衡_nginx_43

3)启动服务设置开机自动启动

[root@centos01 ~]# systemctl start named
[root@centos01 ~]# systemctl enable named

Nginx 和 tomcat 实现负载均衡_tomcat_44

4)查看服务运行状态

[root@centos01 ~]# netstat -anptu | grep named
tcp 0 0 192.168.200.10:53 0.0.0.0:* LISTEN 6629/named


Nginx 和 tomcat 实现负载均衡_centos_45

5、客户端访问验证

1)客户端第一次访问网站服务器

Nginx 和 tomcat 实现负载均衡_nginx_46

2)客户端第二次访问网站服务器

Nginx 和 tomcat 实现负载均衡_tomcat_47

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
qxuulBwtA3Q2
作者其他文章 更多