在Tomcat中部署应用时,如何通过域名访问而不加端口号

--江上往来人,但爱鲈鱼美。

--君看一叶舟,出没风波里。

在Tomcat中部署应用时,如果你希望通过域名访问而不加端口号(默认HTTP端口80或HTTPS端口443),你通常需要在前端使用一个反向代理服务器(如Nginx或Apache HTTP Server)来进行端口转发和SSL终止。这是因为Tomcat通常不会直接监听80或443端口,而这些端口通常需要超级用户权限才能绑定。

以下是一个使用Nginx作为反向代理服务器的示例配置,将HTTP和HTTPS请求转发到Tomcat的8080或8443端口:

前提条件

  1. 已经安装并配置好了Tomcat服务器。
  2. 已经安装并配置好了Nginx服务器。
  3. 拥有一个可用的域名,并且DNS已经解析到服务器的IP地址。

Nginx配置示例

  1. 编辑Nginx配置文件(通常是/etc/nginx/nginx.conf/etc/nginx/sites-available/default)。
XML 复制代码
server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 443 ssl;
    server_name yourdomain.com;

    ssl_certificate /path/to/your/certificate.crt;
    ssl_certificate_key /path/to/your/private.key;

    location / {
        proxy_pass http://localhost:8443;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

详细步骤

‌1.安装Nginx‌(如果尚未安装):

bash 复制代码
sudo apt-get update
sudo apt-get install nginx

‌2.创建SSL证书‌(可以通过Let's Encrypt免费获取,或购买证书)

bash 复制代码
sudo apt-get install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com

按照提示完成证书的申请和安装。

3.编辑Nginx配置文件‌:

使用你喜欢的文本编辑器(如vimnano)编辑Nginx的配置文件,并添加上面的配置内容。

4‌.测试Nginx配置‌:

bash 复制代码
sudo nginx -t

确保配置没有语法错误。

5.重启Nginx‌:

bash 复制代码
sudo systemctl restart nginx
复制代码

Tomcat配置

确保Tomcat的server.xml文件中配置了适当的Connector:

XML 复制代码
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                     certificateKeystorePassword="changeit"
                     type="RSA" />
    </SSLHostConfig>
</Connector>

验证

  1. 通过浏览器访问http://yourdomain.com,确认是否能够正常访问Tomcat应用。
  2. 通过浏览器访问https://yourdomain.com,确认是否能够通过HTTPS正常访问Tomcat应用。

这样配置后,你就可以通过域名访问Tomcat应用而无需指定端口号了。Nginx会处理所有的请求并将其转发到Tomcat的相应端口。

相关推荐
189228048612 小时前
NY352固态MT29F32T08GWLBHD6-24QJ:B
大数据·服务器·人工智能·科技·缓存
AI视觉网奇2 小时前
linux 检索库 判断库是否支持
java·linux·服务器
dapeng-大鹏2 小时前
KVM+LVM 零停机在线扩容 Ubuntu 根分区:从磁盘添加到逻辑卷扩展完整
linux·运维·ubuntu·磁盘空间扩展
乐维_lwops2 小时前
案例解读|运维监控助力某大型卷烟厂构建高效运维监控体系
运维·运维案例
JiaWen技术圈2 小时前
网站用户注册行为验证码方案
运维·安全
仙柒4152 小时前
Docker存储原理
运维·docker·容器
DolphinDB2 小时前
漫长人工,耗费存储?用 BackupRestore 模块一站式解决跨环境数据同步难题
运维·后端·架构
一楼的猫3 小时前
从工具链视角对比:番茄作家助手 vs 第三方写作辅助方案
java·服务器·开发语言·前端·学习·chatgpt·ai写作
武子康3 小时前
调查研究-138 全球机器人产业深度调研报告【01 篇】:市场规模、竞争格局与商业化成熟 2026
服务器·数据库·ai·chatgpt·机器人·具身智能
xhbh6664 小时前
代理ARP (Proxy ARP) 是如何实现跨网段通信的?在Linux下如何配置?
服务器·网络·智能路由器·端口映射·映射