![Nginx 处理域名转发到 tomcat](https://linux22.com/image/705723/Nginx%20%E5%A4%84%E7%90%86%E5%9F%9F%E5%90%8D%E8%BD%AC%E5%8F%91%E5%88%B0%20tomcat.png)
我有域名xyzabc.com我在本地机器上托管了一些示例应用程序
由于我的 ISP阻止端口 80,所以我必须将我的域名转发到端口 81;所以我定义了转发(http://xx.xx.xx.xx:81) 在 godaddy 中配置了 2 个子域名foo.xyzabc.com和bar.xyzabc.com并分别使用转发为 (xx.xx.xx.xx:81) 和 (xx.xx.xx.xx:81)。
在我的路由器上,我定义了端口转发,将外部端口 81 映射到内部端口 80,此时nginx 正在运行。
到目前为止一切正常xyzabc.com, foo.xyzabc.com包含我的主要网站内容。
现在我想映射雄猫当有人输入foo.xyzabc.com到 localhost:8080/ 而我不清楚如何配置它。
我尝试的是:
server {
listen 80;
server_name foo.xyzabc
location / {
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port 81;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect http://xx.xx.xx.xx:81/ http://localhost:8080/;
}
}
和
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_connect_timeout 150;
proxy_send_timeout 100;
proxy_read_timeout 100;
}
和多种排列组合但是当我输入 foo.xyzabc.com/ 时,我无法获取 Tomcat 网页
我将非常感激任何能提供的帮助。
答案1
您server_name
的主机名应完全匹配,例如foo.xyzabc.com
而不是foo.xyzabc
。此外,第一个location /
例子缺少proxy_pass
指令。