You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Ubuntu服务器Wildfly、Tomcat子域名配置问询

实现多子域名到不同应用服务的反向代理方案

嗨,我来帮你搞定这个域名转发的问题!根据你描述的Ubuntu服务器场景,用Nginx做反向代理是最直接靠谱的解决方案,它能轻松根据不同的域名把请求转发到对应的Wildfly或Tomcat服务上。下面是一步步的操作指南:

第一步:安装Nginx

先更新系统包列表,然后安装Nginx:

sudo apt update
sudo apt install nginx

第二步:配置Nginx虚拟主机

Nginx通过虚拟主机(server块)来区分不同域名的请求。我们可以为每个域名单独创建配置文件,这样管理起来更清晰。

1. 创建www.example.com的配置文件

创建并编辑配置文件:

sudo nano /etc/nginx/sites-available/www.example.com

填入以下内容(注意替换成你的实际域名,同时确认Wildfly确实监听80端口):

server {
    listen 80;
    server_name www.example.com;

    location / {
        proxy_pass http://localhost:80;
        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;
    }
}

2. 创建subdomain1.example.com的配置文件

同样创建配置文件:

sudo nano /etc/nginx/sites-available/subdomain1.example.com

填入指向8080端口Tomcat的配置:

server {
    listen 80;
    server_name subdomain1.example.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;
    }
}

3. 创建subdomain2.example.com的配置文件

重复操作,创建指向8090端口Tomcat的配置:

sudo nano /etc/nginx/sites-available/subdomain2.example.com

配置内容:

server {
    listen 80;
    server_name subdomain2.example.com;

    location / {
        proxy_pass http://localhost:8090;
        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;
    }
}

第三步:启用配置并重启Nginx

把刚才创建的配置文件软链接到Nginx的启用目录:

sudo ln -s /etc/nginx/sites-available/www.example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/subdomain1.example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/subdomain2.example.com /etc/nginx/sites-enabled/

先测试Nginx配置是否有语法错误:

sudo nginx -t

如果显示test is successful,就可以重启Nginx使配置生效:

sudo systemctl restart nginx

额外注意事项

  • 防火墙配置:确保Ubuntu的防火墙(ufw)已经开放80端口,否则外部请求无法到达Nginx:
    sudo ufw allow 80/tcp
    sudo ufw reload
    
  • 后端服务绑定地址:确认Wildfly和两台Tomcat的监听地址是0.0.0.0而不是127.0.0.1,否则Nginx无法转发请求到这些服务。
  • Wildfly端口确认:你提到“暂未完全确认”Wildfly监听80端口,可以用netstat -tulpn | grep :80命令来检查是否有进程在监听80端口。

内容的提问来源于stack exchange,提问作者danielc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:17:45