Nginx+Tomcat群集

**Nginx + Tomcat 集群**

Nginx 和 Tomcat 集群的组合是一种常见且强大的架构方案,旨在实现高可用性、可扩展性和高性能的 Web 应用服务。

Nginx 是一款轻量级的高性能 Web 服务器和反向代理服务器。它能够高效地处理静态资源请求,并将动态请求转发到后端的 Tomcat 服务器。其优点包括:

-- 出色的并发处理能力,能够同时处理大量的连接请求。

-- 低资源消耗,在硬件资源有限的情况下仍能保持良好性能。

Tomcat 则是一个流行的 Java Servlet 容器,用于运行 Java Web 应用程序。

在构建 Nginx + Tomcat 集群时,通常会采用以下方式:

-- 负载均衡:Nginx 作为前端的负载均衡器,根据配置的策略将请求分发到后端的多个 Tomcat 实例上。例如,可以基于轮询、加权轮询、IP 哈希等算法进行分发。

-- 高可用性:通过监控 Tomcat 实例的状态,当某个实例出现故障时,Nginx 能够自动将请求转发到其他正常运行的实例上,确保服务的连续性。

举例来说,如果一个电商网站面临大量的用户访问,使用 Nginx + Tomcat 集群可以确保:

--在促销活动期间,即使访问量激增,系统也能快速响应,不会出现卡顿或崩溃。

-- 当某个 Tomcat 服务器进行维护或出现故障时,用户的购物体验不会受到影响,仍能正常浏览和下单。

总之,Nginx + Tomcat 集群为企业提供了一种可靠且高效的解决方案,以满足不断增长的业务需求和用户访问量。

1:关闭防火墙

复制代码
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

2:安装java环境

复制代码
[root@localhost ~]# yum -y install java
[root@localhost ~]# java -version

3:安装tomcat

复制代码
[root@localhost ~]# tar zxvf apache-tomcat-9.0.8.tar.gz 
[root@localhost ~]# mv apache-tomcat-9.0.8 /usr/local/tomcat8

4:启动tomcat

复制代码
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh
[root@localhost ~]# netstat -anpt | grep java

5:创建测试网页

复制代码
[root@localhost ~]# mkdir -p /web/webapp1
[root@localhost ~]# 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("动态页面 1,http://www.test1.com");%>
   </body> 
   <body> 
    <div>动态页面的图片 1</div><br><img src="logo.jpg"> 
   </body> 
</html>

6:修改tomcat主配置文件

复制代码
[root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml 

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context docBase="/web/webapp1" path="" />
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>

7:重启tomcat

复制代码
[root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh 
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh 

8:客户端访问测试

二:nginx配置(在192.168.10.101)

1:安装nginx

复制代码
[root@localhost ~]# yum -y install pcre-devel zlib-devel gcc*
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost ~]# tar zxvf nginx-1.12.0.tar.gz 
[root@localhost ~]# cd nginx-1.12.0
[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
[root@localhost nginx-1.12.0]# make && make install
[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

2:编辑测试网页文件

复制代码
[root@localhost ~]# vim /usr/local/nginx/html/index.html 
<body> 
<h1>静态页面</h1> 
<p>这是个静态页面</p> 
</body>

3:添加图片

复制代码
[root@nginx ~]# mkdir /usr/local/nginx/html/img //创建静态文件目录 
[root@nginx ~]# cp /root/logo.jpg /usr/local/nginx/html/img

4:修改主配置文件

复制代码
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
(1)在http配置项中添加
upstream tomcat_server {
        server 192.168.10.102:8080 weight=1;
        server 192.168.10.103:8080 weight=1;
}


(2)在server配置项中添加
charset utf-8;
location / {
       root   html;
       index  index.html index.htm;
}

location ~ .*\.jsp$ {
        proxy_set_header HOST $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Client-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://tomcat_server;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
        root /usr/local/nginx/html/img;
        expires 30d;
}

5:启动nginx

复制代码
[root@localhost ~]# nginx

6:修改tomcat的配置文件,并重启tomcat

复制代码
   <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%a %r %t %{X-Real-IP}i" resolveHosts="false" />

6:测试

相关推荐
乘云数字DATABUFF2 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--4 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森4 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜5 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB6 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode7 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220708 天前
如何搭建本地yum源(上)
运维
ping某9 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树8811 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠11 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql