我有问题,我有一个express-js网络服务器,我用nginx反向代理托管它。我想要一个.htpasswd文件的基本身份验证。我复制了我的其他子域的配置,我实际上有它,它在那里工作,但在这个子域它不会工作。登录后我得到错误403.除了路径之外,配置完全相同。 这是我的配置。我已经替换了路径和域名。
upstream subdomain-domain-com{
server 127.0.0.1:3003;
}
server {
include cloudflare.domain.com.ssl;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name subdomain.domain.com;
location ~ ^/(assets/|images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.$
root /srv/www/subdomain.domain.com/www/public/;
access_log off;
expires 24h;
}
location / {
auth_basic "Kennwort eingeben";
auth_basic_user_file /srv/www/subdomain.domain.com/.htpasswd;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3003/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header x-Forwarded-Proto $scheme;
}
}
编辑:chmod = 777,用户= root 编辑²:如果我把.htpasswd的chown放到nginx:nginx没有发生任何事情
答案 0 :(得分:0)
我刚刚阅读了日志,并说它无法找到.htpasswd。我改变了路径,现在它正在工作..