在不同端口上使用nginx进行Http基本身份验证
我有一个带有反向前端代理的网站,我的应用程序监听端口3000。我有另一个应用程序,它位于3001上,是同一目录的一部分,该目录为3000端口上的站点提供内容 我想做的事 任何进入mydomain.com:3001的人都会被提示输入在不同端口上使用nginx进行Http基本身份验证,nginx,webserver,.htpasswd,Nginx,Webserver,.htpasswd,我有一个带有反向前端代理的网站,我的应用程序监听端口3000。我有另一个应用程序,它位于3001上,是同一目录的一部分,该目录为3000端口上的站点提供内容 我想做的事 任何进入mydomain.com:3001的人都会被提示输入auth_basic凭证。任何进入mydomain.com的人都能正常通过 我当前的nginx配置: upstream app_example { server 127.0.0.1:3000; keepalive 64; } server {
auth_basic
凭证。任何进入mydomain.com的人都能正常通过
我当前的nginx配置:
upstream app_example {
server 127.0.0.1:3000;
keepalive 64;
}
server {
root /var/www/example;
listen 0.0.0.0:80;
server_name example.com example;
access_log /var/log/nginx/app_example.log;
}
是这样的吗
upstream app_tools {
server 127.0.0.1:3001;
}
server {
listen 80;
server_name example.com example;
location / {
auth_basic "secured site tools";
auth_basic_user_file /var/www/example/.htpasswd;
proxy_pass http://app_tools;
}
}
您需要为
mydomain.com:3001
和mydomain.com
创建不同的服务器
upstream app_tools {
server 127.0.0.1:3000;
keepalive 64;
}
server {
root /var/www/example;
listen 0.0.0.0:80;
server_name mydomain.com;
access_log /var/log/nginx/app_example.log;
location / {
proxy_pass http://app_tools;
}
}
server {
root /var/www/example;
listen 0.0.0.0:3001;
server_name mydomain.com;
access_log /var/log/nginx/app_example_secure.log;
location / {
auth_basic "secured site tools";
auth_basic_user_file /var/www/example/.htpasswd;
proxy_pass http://app_tools;
}
}
但请记住什么是通过默默无闻来保证安全——这是个坏主意。啊哈!谢谢——这似乎奏效了!我使用的是kue.js(),在使用webapp时它会绑定到一个特定的端口,所以我只是想在它前面加上一些保护,这样你就不能主动浏览taskworker队列了。绑定到我的应用程序的同一个端口会非常草率,因为我需要导入我的路由和中间件,并确保我不会重复使用kue拥有的任何命名空间路由(另外,我讨厌直接编辑库)。