Tomcat Web 应用绑定域名的几种方式

当我们将应用部署到 tomcat 之后,默认是通过 这种形式来访问的。

很显然,这只适用于调试的情况,在实际使用时,我们通常会为根据需要,为应用绑定更加便于访问的路径。

一般来说,我们不直接将 tomcat 运行在 80 端口,更安全的做法是在 80 端口运行一个 http server,然后通过反向代理转发到 8080 端口。

以下的几种方式均基于反向代理实现,需要对应的反向代理服务程序,这里使用的是 apache,也可以用 nginx 实现,大同小异。

ne

首先,需要确保开启 mod_proxy 模块:

$ sudo a2enmod proxy

$ sudo a2enmod proxy_http

$ service apache2 restart

通过 80 端口访问

即通过 的形式访问 web 应用。

我们在 80 端口运行 apache,由 apache 处理 80 端口的请求,然后将所有请求转发给运行在 8080 端口的 tomcat 处理,这样就无需修改 tomcat 的运行端口,另一方面也确保了安全性。

在 /etc/apache2/sites-available/ 目录下添加配置文件 tomcat.conf:

ServerName codebelief.com

ProxyRequests On

ProxyPass /

ProxyPassReverse /

然后将该配置文件通过软链接放入 /etc/apache2/sites-enabled/ 目录以启用该配置。

可以使用以下命令:

$ ln -s tomcat.conf /etc/apache2/sites-enabled/tomcat.conf

也可以使用 apache 自带的命令:

$ a2ensite tomcat.conf

最后重新加载 apache 配置文件:

$ service apache2 reload

完成。

通过子域名访问

即通过 访问 web 应用。

与上述配置过程类似,依然采用反向代理的方式将子域名请求转发给 8080 端口。

只需将 tomcat.conf 文件改成:

ServerName codebelief.com

ServerAlias app.codebelief.com

ProxyRequests On

ProxyPass /

ProxyPassReverse /

同样,将该文件链接到 sites-enabled 目录下,然后 reload 配置即可。

域名根路径访问应用

即直接通过 的形式访问 myapp,而无需加应用所在目录名。

tomcat.conf 文件内容如下,其它步骤一样。

ServerName codebelief.com

ServerAlias app.codebelief.com

ProxyRequests On

ProxyPass /

ProxyPassReverse /

这样,就可以通过 或者 直接访问 myapp 了。

使用根路径直接访问应用,还有另一种实现方式。

这种方式不需要 apache 或 nginx 等反向代理服务程序,但是如果要使用这种方式,最好是 tomcat 只运行单个 web 应用,避免一个 web 应用的内部路径与其它 web 应用的路径冲突。

我们这里不考虑端口号的修改,使用默认的 8080 端口。

目标是通过 来访问 myapp。

修改 tomcat/conf/server.xml 文件

在 标签内添加下面的主机配置:

app.codebelief.com

directory=”logs” prefix=”localhost_access_log.” suffix=”.txt”

pattern=”%h %l %u %t “%r” %s %b” resolveHosts=”false” />

Host 标签中的 name 表明该配置用于处理来自 codebelief.com 主机的请求。注意,name 必须为一级域名或 ip 地址。

要使得子域名 app.codebelief.com 也能使用该配置,即根路径直接访问 myapp,那么需要使用 Alias 标签绑定该子域名。

Context 标签内的 path=”” 表示直接通过根路径访问,docBase=”myapp” 表示根路径默认访问的是 myapp 应用。

对外屏蔽 8080 端口

当我们使用不包含端口号的形式访问 myapp 时,我们还可以对外屏蔽 8080 端口,即必须通过 80 端口由 apache 转发给 tomcat。

要使外部不能直接访问 8080 端口,可以在 iptables 中添加对应规则,有关 iptables 的具体原理和用法,可以自行参考相关文章。

在这里,只需要执行以下命令:

$ iptables -t mangle -A PREROUTING -p tcp –dport 8080 -j DROP

该命令会在 mangle 表中的 PREROUTING 链添加指定规则,即对来自 8080 端口的 tcp 连接,直接做丢弃处理。

这样就可以禁止外部通过 8080 端口访问 tomcat 应用了。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/155295.html<

(0)
管理的头像管理
上一篇2025-03-15 09:12
下一篇 2025-03-15 09:13

相关推荐

  • 骨干网络体系结构能干什么?骨干网络体系结构的作用

    骨干网络体系结构是现代信息社会的“超级高速公路网”,它通过分层设计、冗余备份和智能调度,确保海量数据在全球范围内高速、稳定、安全地传输,是支撑云计算、物联网及人工智能应用的底层基石,想象一下,如果你把互联网比作一个巨大的城市交通系统,那么骨干网络就是连接各个城市的主干道和立交桥,没有它,你的每一次微信发送、每一……

    2026-06-18
    0
  • 高io数据库可以干什么用?高io数据库适合什么场景

    高IO数据库的核心价值在于通过极高的读写吞吐量,解决海量数据场景下的性能瓶颈,是支撑高并发交易、实时分析及大规模内容分发的关键基础设施,在数字化转型的深水区,数据不再仅仅是静态的记录,而是流动的资产,传统的机械硬盘或普通SSD早已无法满足现代应用对速度的极致追求,高IO(Input/Output)数据库,就是那……

    2026-06-18
    0
  • 高io服务器性能如何?高io服务器适合什么场景

    高IO服务器并非单纯指代某种硬件,而是指在随机读写、高并发连接及小文件处理场景下,具备极致IOPS(每秒输入输出操作次数)和低延迟特性的计算资源,它是支撑现代高并发应用稳定运行的核心基石,在2026年的数字化浪潮中,业务负载早已从简单的静态页面展示演变为复杂的实时数据处理,许多开发者在排查系统瓶颈时,往往忽略了……

    2026-06-18
    0
  • 隔离网络空间哪里便宜?国内隔离网络空间价格

    隔离网络空间并没有统一的“便宜”标准,其成本高度取决于物理隔离等级、带宽需求及安全合规要求,通常物理网闸方案初期投入较高但长期运维成本低,而逻辑隔离方案虽初期便宜但存在潜在安全风险,建议根据业务敏感度选择混合隔离架构以平衡成本与安全,在数字化时代,企业构建独立网络环境的需求日益增长,但“隔离网络空间哪里便宜”这……

    2026-06-18
    0
  • 骨干网络体系结构设备为何故障?常见原因有哪些

    骨干网络体系结构设备故障的核心原因通常归结为硬件老化、配置错误、物理链路中断及外部攻击四大类,其中电源模块失效与光模块性能衰减是占比最高的隐性故障源,骨干网作为数字经济的“大动脉”,其稳定性直接关乎国计民生,当核心路由器或交换机出现丢包、震荡甚至宕机时,运维人员往往面临巨大的压力,很多人第一反应是检查软件配置……

    2026-06-18
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注