如何解决包括根URL和Nginx的“ proxy_pass”在内的请求?

时间:2019-02-05 15:53:36

标签: docker nginx proxy

将Nginx用作服务网关时,使用/js/jquery.js之类的URL的请求将无法解决。

这似乎是一种可以结合$http_origin的简单解决方案,但我一直无法弄清楚。

我们将在Docker上使用几种不同的服务,并使用Nginx容器来处理路由。对于使用诸如js/jquery.js之类的相对URL进行请求的页面,此方法很好,因为浏览器会将其附加到当前URL。

举一个简单的例子:

http {

    server {

        listen       80;
        server_name  $HOSTNAME;

        location /video {
            include proxy_headers.conf;
            proxy_pass   http://$HOSTNAME:8000/video;
        }
    }
}

无斜杠有效,因为它请求domain/video/lib/..

<link rel="stylesheet" href="lib/bootstrap.min.css">

不带斜杠,因为请求domain/lib/..

<link rel="stylesheet" href="/lib/bootstrap.min.css">

感觉解决方案将是检查$http_origin是否从/video发出请求,然后重定向(如果它也没有以/video开头)。

由于Nginx配置文件不允许多个条件,因此我不确定如何最好地尝试这种方法。考虑到这个问题的普遍性,我敢肯定有一个简单的解决方案。谢谢!

0 个答案:

没有答案