🏡作者主页:
🐧linux基础知识(初学):点击!
🐧linux高级管理专栏:
🔐linux中firewalld防火墙:点击!
⏰️创作时间:2024年7月10日14点11分
🀄️文章质量:94分
在当今互联网高并发访问的环境下,单一的web服务器很难满足不断增长的用户需求。为了提高系统的可靠性、可扩展性和高可用性,实现负载均衡和集群部署是一个非常重要的解决方案。
nginx凭借其高性能、高并发和低资源占用的特点,成为了一款出色的反向代理服务器和负载均衡器。它可以在多台web服务器之间分发请求,实现负载均衡,同时还提供了缓存、压缩等优化功能,有效提高了web应用程序的响应速度和可靠性。
而tomcat则是一款广泛使用的java web应用服务器,它支持集群部署,可以将多个tomcat实例组合成一个逻辑上的服务器集群,实现请求的负载均衡和会话共享,从而提高了系统的可扩展性和高可用性。
无论是nginx还是tomcat,它们在负载均衡和集群部署方面都有着独特的优势和特点,根据具体的应用场景和需求,合理选择和配置这两种技术,可以极大地提升web应用程序的性能和可靠性。
实验环境
nginx ip地址:192.168.192.100/24
tomcat1 ip地址:192.168.192.111/24
tomcat2 ip地址:192.168.192.112/24
本案例我们将以nginx作为负载均衡器,tomcat作为应用服务器的负载群集的设置方法
tomcat1
1.查看jdk是否安装
[root@localhost ~]# java -version
-bash: java: 未找到命令
如果没有配置java不要慌,如果有的话是会显示的
配置本地源或者阿里源来安装
yum install -y java-1.8.0-openjdk
上传安装包 解压安装
解压完成之后移动
开启tomcat
[root@localhost ~] tar -zxf apache-tomcat-9.0.91.tar.gz 解压
[root@localhost ~ ]mv apache-tomcat-9.0.91 /usr/local/tomcat8 移动到 /usr/local下
[root@localhost ~] /usr/local/tomcat8/bin/startup.sh 开启tomcat
using catalina_base: /usr/local/tomcat8
using catalina_home: /usr/local/tomcat8
using catalina_tmpdir: /usr/local/tomcat8/temp
using jre_home: /usr
using classpath: /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
using catalina_opts:
tomcat started.
访问测试
访问tomcat的ip地址8080 出现以下页面表示成功
创建存放的目录和页面
创建/web/webapp1目录,修改tomcat 配置文件 server.xml,将网站文件目录更改到/web/webapp1/路径下
mkdir -p /web/webapp1
在/web/webapp1/路径下建立 index.jsp,为了区别将测试页面 index,jsp 的内容更改如下
vim /web/webapp1/index.jsp
加入以下内容
<%@ page language="java" import="java.util.*" pageencoding="utf-8"%>
<html>
<head>
<title>jsp test1 page</title>
</head>
<body>
<% out.println("welcome to test site, http://www.test1.com");%>
</body>
</html>
修改tomcat存放路径
vim /usr/local/tomcat8/conf/server.xml
[root@localhost ~]# netstat -nultp | grep 8080
tcp6 2 0 :::8080 :::* listen 1133/java
[root@localhost ~]# kill -9 1133
重启
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh
查看进程关闭进程
重新访问测试
tomcat2
都也一样需要注意的是页面内容记得修改
nginx配置
下载所需组件
yum groupinstall "development tools"
yum install -y pcre-devel zlib-devel openssl-devel
如果还缺什么组件 可以自己下载 如果没有包 可以配置阿里源来下载
root@localhost ~ groupadd www
root@localhost ~ useradd -g www www -s /bin/false
root@localhost ~ tar -xzf nginx-1.26.1.tar.gz
root@localhost ~ cd nginx-1.26.1/
[root@localhost nginx-1.26.1] ./configure --prefix=/usr/local/nginx --user=www --group=www --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module
make && make install
编辑nginx的配置文件
vim /usr/local/nginx/conf/nginx.conf
upstream tomcat_server {
server 192.168.192.111:8080 weight=1;
server 192.168.192.112:8080 weight=1;
}
location ~ \.jsp$ {
proxy_pass http://tomcat_server;
proxy_set_header host $host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
}
[roót@localhost~]#/usr/local/nginx/sbin/nginx -t
命令解释
upstream
指令用于定义一组服务器,这些服务器将作为负载均衡池,nginx 会根据负载均衡算法将请求分发到这些服务器上。在这个例子中,定义了一个名为 tomcat_server
的上游服务器组,包含两台服务器 192.168.192.111:8080
和 192.168.192.112:8080
,它们的权重都是 1。
将所有以 .jsp
结尾的请求代理到 tomcat_server
上游服务器组,实现了对 jsp 页面的负载均衡。
测试 nginx 配置文件是否正确
配置完成之后重启
nginx有多个进程记得一并杀死
[root@localhost ~]# netstat -nultp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* listen 57513/nginx: master
[root@localhost ~]# kill -9 57513
[root@localhost ~]# kill -9 57514
[root@localhost ~]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
查看进程
测试负载均衡效果
不断刷新浏览器测试,可以看到由于权重相同,页面会反复在以下两个页面来回切换第一次访问,出现test1的测试页面,刷新后,第二次访问,出现 1est2 的试页面,。这说明负载均衡群集搭建成功,已经可以在两个tomcat server站点进行切换
再次访问测试
访问jsp的文件时 给予回复的是tomcat服务器 并且两个服务器来回切换
发表评论