Nginx将proxy_pass服务器重定向到http://server/index.html

前端之家收集整理的这篇文章主要介绍了Nginx将proxy_pass服务器重定向到http://server/index.html前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有以下配置:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    # Add index.PHP to the list if you are using PHP
    index index.html index.htm index.Nginx-debian.html;

    server_name _;
    location / {
    index index.html;
    }


    server_name command_asdf
    location  /asdf/ {
    proxy_pass http://127.0.0.1:3001/;
    }

当我去http://server/asdf/index.html时一切正常.

但是,如果我转到http:// server / asdf /或http:// server / asdf,他们都会将我重定向到http://server/index.html而不是http://server/asdf/index.html

我花了好几个小时试图找出如何让它重定向到子目录上的索引页面,但遗憾的是没有成功.

我有许多服务器需要使用proxy_pass,但上面是我可以显示的最简单的配置.

谢谢!

几周后……我设法解决了我的问题.解决方案是:

   proxy_redirect    / $request_uri;

因此,当用户访问foo.com/bar/时,它会重定向到foo.com/index.html

这发生在proxy_pass服务器发出的302重定向中.

添加到我的配置中的上述行会将foo.com/bar/正确地重定向http://foo.com/bar/,然后加载index.html页面.

完整配置:

    server_name bar;
    location  /bar/ {
    proxy_pass http://127.0.0.1:3001/;
    proxy_redirect    / $request_uri;
    }

作为参考,$request_uri等于位置和子目录,即foo.com/bar/

猜你在找的Nginx相关文章