首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Nginx代理传递指令:上行错误中的端口无效

Nginx代理传递指令:上行错误中的端口无效
EN

Stack Overflow用户
提问于 2021-05-04 16:17:05
回答 1查看 529关注 0票数 1

我正在用Nginx做负载均衡。这是我的配置

代码语言:javascript
运行
复制
upstream web_backend {
        least_conn;
        server localhost:8001  max_fails=3 fail_timeout=60s;
        server localhost:8002  max_fails=3 fail_timeout=60s;
}


server {
    listen 8545;

    server_name _;

    location / {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass http://web_backend;
    }
}


server {
        listen 8001;
        server_name localhost;
        location / {
        proxy_pass https://some_other_url/v3/cxnmcdinwrtyf93vcwdiyfx8q6xqwxv9qg7c93fgcb;

        }
}

server {
        listen 8002;
        server_name localhost;
        location / {
        proxy_pass 'https://chipdunk-dude:gorgeous-serpents-clubbed-orphans@nd-657-555-555-777.dogify.com';
        }
}

正如你所看到的,端口8002的url很奇怪(甚至不知道这种url叫什么),因为它在url中有":“,Nginx给了我这个错误。

代码语言:javascript
运行
复制
nginx: [emerg] invalid port in upstream "chipdunk-dude:gorgeous-serpents-clubbed-orphans@nd-657-555-555-777.dogify.com" in /etc/nginx/sites-enabled/default:60

端口8001处的url工作正常。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-04 17:17:44

根据RFC 7617@之前的所有内容都是userinfo,浏览器应该对其进行编码,并将其作为单独的请求头包含在内。

Nginx不是浏览器,无法为您完成此操作。

您可以将其转换为Base64并使用proxy_set_header来设置Authorization标头。

例如:

代码语言:javascript
运行
复制
proxy_set_header Authorization "Basic Y2hpcGR1bmstZHVkZTpnb3JnZW91cy1zZXJwZW50cy1jbHViYmVkLW9ycGhhbnM=";
proxy_pass https://nd-657...;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67381093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档