当前位置: 首页 > wzjs >正文

比较好的网站开发公司电话鹤岗哈尔滨网站建设

比较好的网站开发公司电话,鹤岗哈尔滨网站建设,江都网站制作,技术先进的网站建设公司目录 一,了解什么是Tomcat 1,核心功能 2,应用场景 3,tomcat处理静态文件 4,tomcat处理动态文件 二,了解nginx的动静分离 1,静态资源处理流程 2,动态资源处理流程 3&#xf…

目录

一,了解什么是Tomcat

1,核心功能

2,应用场景

3,tomcat处理静态文件

4,tomcat处理动态文件

二,了解nginx的动静分离

1,静态资源处理流程

2,动态资源处理流程

3,动静分离的优势

三,部署nginx+tomcat负载均衡

1,准备工作

2,准备tomcat网站

3,修改nginx的配置文件

3,修改tomcat的配置文件

4,验证

5,在日志中显示真实客户端地址 

一,了解什么是Tomcat

Apache Tomcat(简称 Tomcat)是一个开源的 Servlet 容器,用于运行 Java Web 应用程序。Tomcat 是 Java 生态中最流行的 Web 容器之一,适合快速部署 Java Web 应用,尤其在开发环境和中小型项目中广泛使用。通过合理配置和优化,也可满足高并发场景需求。

配置文件

<Connector port="8080" protocol="HTTP/1.1" />

<Host name="localhost" appBase="webapps" />   ##可以在此部分添加多个页面内容节点

格式如下:

<Context docBase="网站路径位置" path="" reloadable="false">       
            </Context>

  • server.xml:主配置文件,定义 Connector、Engine、Host 等组件。
  • web.xml:全局 Web 应用配置,定义 Servlet、过滤器、会话等默认行为。
  • context.xml:Web 应用上下文配置,控制资源加载、安全约束等。

1,核心功能

  • servlet容器:支持java servlet,jsp和WebSocket标准,是运行java Web应用的基础环境
  • HTTP服务器:内置 HTTP 服务器,可直接处理 Web 请求,但性能通常不如专业服务器(如 Nginx、Apache HTTP Server),因此生产环境常与反向代理配合使用
  • 轻量级:相比企业级应用服务器,Tomcat 更轻量、启动快,适合中小型应用和开发环境。

2,应用场景

Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。 一般来说,Tomcat 虽然和 Apache 或者 Nginx 这些 Web 服务器一样,具有处理 HTML页面的 功能,然而由于其处理静态 HTML的能力远不及 Apache 或者Nginx,所以 Tomcat 通常是作 为一个 Servlet 和 JSP 容器,单独运行在后端,

3,tomcat处理静态文件

Tomcat 可以直接处理 HTML、CSS、JavaScript、图片等静态文件,但存在性能瓶颈,当请求静态文件时,Tomcat 会从 webapps/应用名/ 目录下查找并返回,

<Host name="localhost" appBase="webapps">

<Context path="" docBase="app" /> </Host>           ##可以将新的节点写在当前部分后

4,tomcat处理动态文件

Tomcat 的核心优势在于处理动态资源

处理流程:

  • 客户端请求 → Connector(如 HTTP/1.1)接收请求。
  • 请求被转发到 Servlet 容器(Catalina)。
  • Catalina 调用对应的 Servlet/JSP 处理请求。
  • 动态生成响应内容(如 HTML、JSON)返回客户端。

二,了解nginx的动静分离

Nginx 动静分离是一种将动态资源请求和静态资源请求分开处理的架构设计,目的是提升网站性能、减轻应用服务器负担并优化资源利用。

  • 静态资源:HTML、CSS、JavaScript、图片、视频、字体等不需服务器动态生成的文件
  • 动态资源:需要后端程序(如 PHP、Java、Python)实时计算的内容(如 API 响应、用户个性化页面)

为什么需要动静分离?

  1. 静态资源访问频率高、变化少,适合缓存和 CDN 加速
  2. 动态资源依赖数据库和业务逻辑,需更多计算资源
  3. 分离后可针对不同资源特性优化,提升整体性能

1,静态资源处理流程

nginx动静分离的核心是通过URL规则匹配将请求分发到不同的处理路径

客户端请求 → Nginx → 直接返回静态文件(或从缓存读取)

配置关键点

使用localtion快匹配静态资源路径(例如:*.jpg *.css)

设置root或者alias指定静态文件存放目录

配置长缓存策略(通过expires指令)

2,动态资源处理流程

客户端请求 → Nginx → 转发至后端应用服务器 → 处理后返回结果

配置关键点

使用proxy_pass指令将动态请求转发至后端服务器(如 Tomcat、PHP-FPM)

配置连接超时、缓冲区大小等代理参数

可设置负载均衡策略处理多台应用服务器

3,动静分离的优势

  1. 性能提升:静态资源直接由 Nginx 返回,减少后端服务器压力,浏览器缓存和 CDN 加速可大幅减少响应时间
  2. 资源优化:应用服务器专注处理动态逻辑,资源利用更高效,静态资源可部署在廉价存储或对象存储
  3. 可扩展性增强:静态资源可通过 CDN 全球分发,提升用户访问速度,动态服务可独立横向扩展(增加应用服务器)
  4. 高可用性:静态资源可本地多副本或 CDN 冗余存储,应用服务器集群化部署,避免单点故障

三,部署nginx+tomcat负载均衡

1,准备工作

tomcat1服务器                192.168.10.104
tomcat2服务器192.168.10.106
nginx服务器192.168.10.102

2,准备tomcat网站

##两台tomcat服务器配置一致
[root@localhost /]# mkdir -p /web/webapp1
[root@localhost webapp1]# ls
index.jsp##第一台tomcat服务器
[root@localhost webapp1]# cat index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<html>   
<head><title>JSP test2 page</title>   </head><body><% out.println("动态页面 1,http://www.test2.com");%></body> <body> <div>动态页面的图片 1</div><br><img src="logo.png"> </body> 
</html>##第二台tomcat服务器
[root@localhost webapp1]# cat index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<html>   
<head><title>JSP test2 page</title>   </head><body><% out.println("动态页面 2,http://www.test2.com");%></body> <body>  <div>动态页面的图片 2</div><br><img src="logo.png"> ##为了方便验证两台服务器页面可以不一致</body> 
</html>

3,修改nginx的配置文件

[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
##这个要写在http部分upstream web {server 192.168.10.104:8080 weight=1;server 192.168.10.106:8080 weight=2;}##新添加的localtion部分
location ~ .*\.jsp$ {proxy_set_header HOST $host; proxy_pass http://web;
}##检查配置文件是否有误
[root@nginx /]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful##重载nginx服务
[root@nginx /]# nginx -s reload

3,修改tomcat的配置文件

##两台服务器都要配置
[root@localhost /]# vim /usr/local/tomcat/conf/server.xml       
<Context docBase="/web/webapp1" path="" reloadable="false">        ##在150行添加</Context>docBase  ##指定网页的路径
path=""  ##定义 Web 应用的访问路径(上下文路径)
reloadabel   ##控制 Tomcat 是否自动检测应用文件的修改并重新加载应用 
false(默认值)   ##不自动重新加载,修改文件后需手动重启 Tomcat 或应用。
true            ##开启自动重新加载##重启两台服务器,使配置文件生效
[root@localhost /]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost /]# /usr/local/tomcat/bin/startup.sh

4,验证

 

 如果想要添加图片可以修改nginx的配置文件并指定要添加的图片

[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
location ~ .*\.(gif|jsp|bmp|png)$ {              ##添加新的localtion部分root /usr/local/nginx/html/img;expires 30d;}(gif|jsp|bmp|png)  ##指定图片的后缀root /usr/local/nginx/html/img;   ##图片存放的目录在/usr/local/nginx/html/img下expires 30d;   ##图片的缓存存放时间30d表示30天

5,在日志中显示真实客户端地址 

##修改nginx的配置文件location ~ .*\.jsp$ {proxy_set_header HOST $host;proxy_set_header Client-IP $remote_addr;            ##添加三行proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://web;}proxy_set_header Client-IP $remote_addr;    ##把客户端的真实 IP 地址(即$remote_addr变量的值)添加到请求头的Client-IP字段里。proxy_set_header X-Real-IP $remote_addr;    ##将客户端的真实 IP 地址存入X-Real-IP请求头。proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    ##$proxy_add_x_forwarded_for是一个特殊变量,它会把客户端的 IP 地址追加到原请求头的X-Forwarded-For字段中。若原请求头中没有X-Forwarded-For,就会直接设置为$remote_addr。

当我们访问页面时,可以在nginx服务器通过日志查看真实客户端的ip

[root@nginx logs]# pwd
/usr/local/nginx/logs
[root@nginx logs]# cat access.log
192.168.10.1 - - [29/Apr/2025:11:43:52 +0800] "GET /logo.png HTTP/1.1" 304 0 "http://192.168.10.102/index.jsp" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36 Edg/137.0.0.0"

还可以配置以下设置让真实客户端ip在tomcat中显示

[root@localhost /]# vim /usr/local/tomcat/conf/server.xml 
pattern="%{X-Real-IP}i %h %l %u %t &quot;%r&quot; %s %b" />      ##164行修改
%{}i   ##表示从 HTTP 请求头中提取指定字段的值
X-Real-IP   ##这是一个 自定义请求头,通常由反向代理服务器(如 Nginx)设置,用于传递客户端的真实 IP 地址##重载生效
[root@localhost /]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost /]# /usr/local/tomcat/bin/startup.sh

通过tomcat日志查看客户端IP地址

[root@localhost /]# cat /usr/local/tomcat/logs/localhost_access_log.2025-06-03.txt 
192.168.10.1 192.168.10.102 - - [03/Jun/2025:11:18:18 +0800] "GET /index.jsp HTTP/1.0" 200 240
192.168.10.1 192.168.10.102 - - [03/Jun/2025:11:18:19 +0800] "GET /index.jsp HTTP/1.0" 200 240192.168.10.1代表真实客户端的ip地址
192.168.10.102代表nginx调度器的ip地址

http://www.dtcms.com/wzjs/539716.html

相关文章:

  • 黔南州住房和城乡建设局网站下载app安装到手机上
  • 为什么要建设图书馆网站管理课程培训
  • 开发网站网络公司怎么样wordpress 会员
  • 响应式网站设计软件自己做app建网站
  • 南宁网站制作定制站长工具网站提交
  • 上海互联网网站建设公司微信网页版下载 官方
  • 更改网站建设报价网站建设业务文案
  • 制作免费网站的平台wordpress视频大小
  • 鞍山制作网站的公司网站建设400电话
  • 三合一网站模板李可做的网站
  • 京东网站是自己做的吗本地网站建设公司
  • c++语言网站建设免费行情网站的推荐理由
  • 沧州百度爱采购什么是seo营销
  • 专门做礼品的网站淘宝客网站推广备案信息
  • 网站管理助手 二级域名2021年国内重大新闻
  • 专业建筑设计网站平台哈尔滨专业制作网站制作
  • 网站开发插件wordpress资源站主题
  • 酷炫给公司网站欣赏绍兴集团网站建设
  • 仿礼物说网站模板图文型官网站
  • 高端商品网站推广方式
  • 成都哪里有做网站的安康网站建设公司价格
  • 我现在有域名怎么做网站一个ip做网站
  • 福建自己建设网站东莞seo黑帽培训
  • 图书网站开发介绍能发锚文本的网站
  • 机械加工网站模板国内响应式网站案例
  • 中建卓越建设管理有限公司网站掉发脱发严重是什么原因
  • 做炫舞情侣头像动态图网站成都房屋设计公司哪家好
  • wordpress 模板 小工具seo研究协会网是干什么的
  • 四川省建设厅新网站网站建设vs网络推广
  • 网站开发与应用就业方向如何优化网站提高排名