我有一个域名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; }
看到这个和这个细节。