Nginx 处理域名转发到 tomcat

Nginx 处理域名转发到 tomcat

我有域名xyzabc.com我在本地机器上托管了一些示例应用程序

由于我的 ISP阻止端口 80,所以我必须将我的域名转发到端口 81;所以我定义了转发(http://xx.xx.xx.xx:81) 在 godaddy 中配置了 2 个子域名foo.xyzabc.combar.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指令。

相关内容