我有以下 nginx 规则
server_name mydomain.com;
location ^~ /geosamples/ {
rewrite ^/geosamples/(.*)$ /geoserver/$1 break;
proxy_pass http://192.168.92.100:8088;
proxy_connect_timeout 180s;
proxy_read_timeout 240s;
}
如果我访问 mydomain.com/geosamples/index.html 上的应用程序,它可以正常工作。
如果我访问它
mydomain.com/geosamples/
它被重定向到
mydomain.com/geoserver/index.html
显然不再起作用了!
我猜测 geoserver 应用程序正在将客户端重定向到这个有问题的 URL...
我该如何预防?任何帮助我都会很感激!
答案1
当上游服务器返回 3xx 响应时,您需要添加一条proxy_redirect
指令来逆转您的操作。rewrite
尝试:
proxy_redirect http://example.com/geoserver/ http://example.com/geosamples/;
看这个文件了解详情。
答案2
你只是不需要让事情变得过于复杂。
location ^~ /geosamples/ {
proxy_pass http://192.168.92.100:8088/geoserver/;
proxy_connect_timeout 180s;
proxy_read_timeout 240s;
}