如何将nginx请求代理到tomcatpath?

我有一个域名example.com。 当进入example.com我想代理请求到127.0.0.1:8080/source

我的nginxconfiguration

 location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:8080; } 

这适用于127.0.0.1:8080,但我不能让它代理到/源子目录。 当我改变

 proxy_pass http://127.0.0.1:8080/source/; 

它不能正常工作。

redirect到http://127.0.0.1:8080/source/ ,但是js和css文件path是/source/js/ *.js/source/css/ *.css ,其他资源文件是/source/* 。 例如,当浏览器加载html时,它会尝试查找/source/js/ *.js ,因为我redirect到http://127.0.0.1:8080/source/ ,最终path是http://127.0.0.1:8080/source/source/js/ *.js ,但正确的path是http://127.0.0.1:8080/source/js/ *.js

我只是想当我进入example.com ,它将redirect到http://127.0.0.1:8080/source/ ,或者redirect到example.com/source也没关系。

你的问题的结尾表明,你所要做的就是重写一个URI。 这可以通过多种方式来完成,但是与rewrite...last完全匹配的location rewrite...last将如下所示:

 location = / { rewrite ^ /source/ last; } location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:8080; } 

看到这个和这个细节。