nginx重定向和基本认证问题

时间:2015-02-16 17:04:35

标签: nginx plack psgi

我有一个服务(Plack),它会监听http://myhost.com:5000 我想使用Basic Auth密码保护对它的访问

当我在nginx conf文件中设置服务器指令时,我与Plack发生冲突(不能绑定到0.0.0.0:5000,因为Plack使用它,反之亦然)。所以这让我无处可去。

然后我在conf文件中使用location指令启用了Basic Auth:

server {
 location / {
     proxy_pass http://localhost:5000;
     auth_basic "Restricted";
     auth_basic_user_file /home/userx/.htpasswd;
     }  
 }

当nginx" /"被点击它重定向到端口5000并要求用户名/密码。但是我的应用程序依赖于包含端口(http://myhost.com:5000/)的URL来查找资源,并且端口被从请求中删除,所以最终结果是http://myhost.com并且我得到了404 resources / css / images / javascripts等。尝试了各种指令,如port_redirection等。

我尝试使用以下网址重写网址:

location / {
    auth_basic "Restricted";
    auth_basic_user_file /home/userx/.htpasswd;
    rewrite ^/(.*) https://example.com/$1 permanent;
}

获得了所需的结果(http://myhost.com:5000)并且找到了所有资源但是基本的auth从未启动,所以我从来没有得到用户名/密码的提示

作为最后的尝试,它试图用直接

来保护网址
location http://localhost:5000 {
        auth_basic "Restricted";
        auth_basic_user_file /home/userx/.htpasswd;
}

但这也不起作用。

有人可以帮忙吗?

0 个答案:

没有答案