You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为Nuxt.js前置Nginx反向代理添加基础认证时遇网关超时

Nuxt.js应用Nginx反向代理配置基础认证后请求挂起及401错误排查

场景与问题

我正尝试为Nuxt.js应用的前端配置Nginx反向代理基础认证,配置后请求出现挂起现象。将认证配置移至location块内后问题依旧,调整upstream配置、代理超时参数均未解决,仅在pm2日志中看到401错误。.htpasswd文件已存在且内容正确。

尝试过的配置

初始Nginx配置

server {
    server_name <url>;

    auth_basic "Restricted Content";
    auth_basic_user_file /etc/nginx/.htpasswd;

    gzip            on;
    gzip_types      text/plain application/xml text/css application/javascript;
    gzip_min_length 1000;

    location / {
        proxy_pass http://127.0.0.1:3222;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }

    listen 443 ssl; # managed by Certbot
}

尝试的upstream配置(无效)

upstream backend {
    server backend1.example.com       weight=5;
    server backend2.example.com:8080;
    server unix:/tmp/backend3;

    server backup1.example.com:8080   backup;
    server backup2.example.com:8080   backup;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

调整超时后的配置

upstream部分

upstream backend {
    server 127.0.0.1:3222;
    keepalive 7000;
}

location部分

auth_basic "Restricted Content";
auth_basic_user_file conf.d/.htpasswd;

proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_read_timeout 7200s;
proxy_connect_timeout 75s;
proxy_buffer_size 8k;
proxy_set_header  Authorization $http_authorization;
proxy_pass_header Authorization;
}

错误日志

pm2中记录的错误:

ERROR  Request failed with status code 401
at createError (node_modules/axios/lib/core/createError.js:16:15)
at settle (node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (node_modules/axios/lib/adapters/http.js:269:11)
at IncomingMessage.emit (events.js:327:22)
at endReadableNT (_stream_readable.js:1220:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21)

请问我遗漏了什么配置或步骤,导致请求挂起且出现401错误?


内容的提问来源于stack exchange,提问作者user2099762

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 09:06:35