我有一个服务(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;
}
但这也不起作用。
有人可以帮忙吗?