gpt4 book ai didi

tomcat - Nginx反向代理配置问题

转载 作者:行者123 更新时间:2023-11-28 22:48:27 28 4
gpt4 key购买 nike

我已经在 digital ocean droplet 的 tomcat 上部署了一个 webapp

war文件的结构为(Servelet为webapp名称)

Servelet
---- WEB-INF/classes/folder/FileXyz.class

现在在我的本地电脑上,当我想访问它时,我会这样做:

localhost:8080/Servelet/FileXyz

我在 digital ocean 上的 tomcat 上部署了同样的 war ,但这次连接了一个域:server.foodini.co.in

现在我可以使用以下方法访问同一个文件:

server.foodini.co.in:8080/Servelet/FileXyz

这很好用。

现在我想在前面有一个 nginx,它会监听 80 端口并通过反向代理将所有请求转发到 tomcat webapp

我编辑了/etc/nginx/sites-available 下的默认文件在服务器配置下,我添加:

  server_name server.foodini.co.in

root /opt/tomcat/webapps/Servelet

location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/;
}

当我做的时候

server.foodini.co.in

它按预期打开了 tomcat 默认页面

但是

server.foodini.co.in/Servelet/FileXyz

(adding the port 8080 again works)

为所有其他路径提供 404 和相同的 404,有人可以指导我吗?

最佳答案

将请求传递给代理服务器时需要设置Host Header,否则nginx会用变量$proxy_host覆盖Host Header ,在本例中为 127.0.0.1:8080 而您希望它为 server.foodini.co.in:8080。所以只需将其添加到 location/ block :

proxy_set_header Host $host:$proxy_port;

关于tomcat - Nginx反向代理配置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48855317/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com