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
相关产品推荐
相关产品推荐

