![Nginx 和 tomcat 实现负载均衡_tomcat](//dev-img.mos.moduyun.com/20231020/e1e08be8-785b-4c59-86b3-ab2156a95624.png)
一、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](//dev-img.mos.moduyun.com/20231020/9978ed30-1a94-4af3-88b9-cf512a4af5e0.png)
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](//dev-img.mos.moduyun.com/20231020/79c088e8-72b8-4173-b67f-139c9baedccf.png)
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](//dev-img.mos.moduyun.com/20231020/0f876862-5ce4-4156-80b3-5ab9d9abce4d.png)
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](//dev-img.mos.moduyun.com/20231020/f8d24ba5-165a-44d2-a311-28179a52d354.png)
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](//dev-img.mos.moduyun.com/20231020/fe95e151-684b-42e2-b477-b8259aacd721.png)
![Nginx 和 tomcat 实现负载均衡_tomcat_07](//dev-img.mos.moduyun.com/20231020/e5733733-9a1b-4300-bc69-8defb2ee81e0.png)
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](//dev-img.mos.moduyun.com/20231020/9e527ffd-b872-416a-9bed-b21f45520d34.png)
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](//dev-img.mos.moduyun.com/20231020/426f5e33-6e5c-45d2-b3c4-20b1824e6e33.png)
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](//dev-img.mos.moduyun.com/20231020/4455a498-8376-4949-962a-eba55c9aa685.png)
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](//dev-img.mos.moduyun.com/20231020/2bb24e74-ec71-46be-a474-4e634d79caa1.png)
4、客户端配置 IP 地址和 DNS
1)客户端配置 IP 地址和 DNS
![Nginx 和 tomcat 实现负载均衡_tomcat_12](//dev-img.mos.moduyun.com/20231020/7fe0a617-17f8-4070-93b5-1f3c0a957322.png)
2)查看配置的 IP 地址
![Nginx 和 tomcat 实现负载均衡_centos_13](//dev-img.mos.moduyun.com/20231020/ed81e6b2-d692-4518-aef5-43ae542760f9.png)
二、安装 tomcat 服务器配置网站
1、安装第一台 tomcat 服务器
1)切换到程序光盘
![Nginx 和 tomcat 实现负载均衡_nginx_14](//dev-img.mos.moduyun.com/20231020/27307b45-75dc-4fd2-bb1a-77903fb100d6.png)
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](//dev-img.mos.moduyun.com/20231020/987ee234-7d79-4ee5-8d72-c934580f6bcc.png)
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](//dev-img.mos.moduyun.com/20231020/683de35a-e502-4943-8e64-6b277b1e96b4.png)
2、配置第一台 tomcat 服务器
1)创建网站服务器根目录设置网站主页
[root@centos02 ~]# mkdir /www/
[root@centos02 ~]# echo "www.benet.com" > /www/index.jsp
![Nginx 和 tomcat 实现负载均衡_centos_17](//dev-img.mos.moduyun.com/20231020/dfc4b6ce-fcb2-4023-88e6-f186f70d934f.png)
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](//dev-img.mos.moduyun.com/20231020/4f01c2be-dbf7-456a-8f99-f28617123426.png)
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](//dev-img.mos.moduyun.com/20231020/57ffb59f-ba33-4fd5-a5e0-569aaef8d2fc.png)
![Nginx 和 tomcat 实现负载均衡_nginx_20](//dev-img.mos.moduyun.com/20231020/6f92d33d-ded2-4c2e-abeb-fed732de3b8c.png)
3、安装第二台 tomcat 服务器
1)切换到程序光盘
![Nginx 和 tomcat 实现负载均衡_centos_21](//dev-img.mos.moduyun.com/20231020/6756977f-5650-41f8-8074-6a9f1123cded.png)
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](//dev-img.mos.moduyun.com/20231020/eb94aa25-0e69-453a-a2e8-dc661524ef74.png)
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](//dev-img.mos.moduyun.com/20231020/6d11eb55-f744-423e-9f8c-485dcdda39a1.png)
4、配置第二台 tomcat 服务器
1)创建网站服务器根目录设置网站主页
[root@centos03 ~]# mkdir /www/
[root@centos03 ~]# echo "www.accp.com" > /www/index.jsp
![Nginx 和 tomcat 实现负载均衡_tomcat_24](//dev-img.mos.moduyun.com/20231020/b3411f87-579a-47f5-89d1-0f397319164b.png)
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](//dev-img.mos.moduyun.com/20231020/583b04dc-4817-4dd1-999e-22beffde679d.png)
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](//dev-img.mos.moduyun.com/20231020/e29aa7cc-107c-452b-b1b5-cc74d1cff866.png)
三、安装 Nginx 代理和负载均衡功能配置 DNS 服务器域名解析,客户端使用域名www.nlb.com负载均衡访问网站
1、安装 Nginx 反向代理依赖软件和 DNS 服务
1)切换到系统光盘
![Nginx 和 tomcat 实现负载均衡_tomcat_27](//dev-img.mos.moduyun.com/20231020/4cb21eff-97c5-415e-a727-f1d9ee32b9ca.png)
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](//dev-img.mos.moduyun.com/20231020/84c0c632-e8b8-4316-8256-a431b2db6928.png)
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](//dev-img.mos.moduyun.com/20231020/60072a7a-44a0-4d44-b1cc-bae849f7fa16.png)
4)安装依赖程序
[root@centos01 ~]# yum -y install pcre-devel zlib-devel openssl-devel bind bind-chroot bind-utils
![Nginx 和 tomcat 实现负载均衡_centos_30](//dev-img.mos.moduyun.com/20231020/9ade42be-9909-418a-ac9a-5315e8025ca2.png)
5)创建管理 nginx 服务用户
[root@centos01 ~]# useradd -M -s /sbin/nologin nginx
![Nginx 和 tomcat 实现负载均衡_nginx_31](//dev-img.mos.moduyun.com/20231020/021aba33-a89f-45a8-9d2e-f4a4a5d69cf4.png)
2、配置 Nginx 代理服务器
1) 切换到程序光盘
![Nginx 和 tomcat 实现负载均衡_centos_32](//dev-img.mos.moduyun.com/20231020/4f15a271-3f0c-4023-bf80-dafaa0f7ddfb.png)
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](//dev-img.mos.moduyun.com/20231020/0184a3b9-104a-4d59-b671-77bdb980d463.png)
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](//dev-img.mos.moduyun.com/20231020/aace6b6b-27a7-48f4-af4f-74e1b650a317.png)
4)编译安装 Nginx
[root@centos01 nginx-1.6.0]# make && make install
![Nginx 和 tomcat 实现负载均衡_centos_35](//dev-img.mos.moduyun.com/20231020/56843a27-f950-40db-82b2-50bf76fd0a36.png)
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](//dev-img.mos.moduyun.com/20231020/933ea40b-4d86-42c8-bc6e-b6ea895269cf.png)
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](//dev-img.mos.moduyun.com/20231020/06a35017-a1b9-401f-a63e-7ca5c497c4c2.png)
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](//dev-img.mos.moduyun.com/20231020/2fe5561c-bf80-4eca-bc8e-af48f9c29d9f.png)
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](//dev-img.mos.moduyun.com/20231020/47960792-2872-470a-95eb-f68b361232af.png)
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](//dev-img.mos.moduyun.com/20231020/1d4bc836-9d8a-4307-a804-092b34e03db0.png)
![Nginx 和 tomcat 实现负载均衡_nginx_41](//dev-img.mos.moduyun.com/20231020/b30e5847-5ccd-4e04-8ab9-aed1ec16dd38.png)
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](//dev-img.mos.moduyun.com/20231020/1800fa50-3e17-4dea-83f4-55cd9b608dff.png)
![Nginx 和 tomcat 实现负载均衡_nginx_43](//dev-img.mos.moduyun.com/20231020/4016ee59-f7dc-4343-87b8-f0f98cb5303c.png)
3)启动服务设置开机自动启动
[root@centos01 ~]# systemctl start named
[root@centos01 ~]# systemctl enable named
![Nginx 和 tomcat 实现负载均衡_tomcat_44](//dev-img.mos.moduyun.com/20231020/e7aea29e-767a-43f0-b814-4735a87c01e8.png)
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](//dev-img.mos.moduyun.com/20231020/1eabc4b9-beac-4bb8-87e8-d172ba34a0fa.png)
5、客户端访问验证
1)客户端第一次访问网站服务器
![Nginx 和 tomcat 实现负载均衡_nginx_46](//dev-img.mos.moduyun.com/20231020/76246e6b-e425-4b5e-8e56-079ff5356c90.png)
2)客户端第二次访问网站服务器
![Nginx 和 tomcat 实现负载均衡_tomcat_47](//dev-img.mos.moduyun.com/20231020/de77ea6a-8221-416a-953f-b8814b4c449d.png)