HTTP 请求在浏览器上有效,但在其他所有情况下失败

HTTP 请求在浏览器上有效,但在其他所有情况下失败

我在做什么

  • 3000两个在端口上运行的 NodeJS/HTTP 服务器3001
  • 使用 Nginx 代理请求
    • app.localhost -> localhost:3001
    • api.app.localhost -> localhost:3000

怎么了

curl请求在浏览器(Chrome)上完美运行并返回正确的状态代码和 JSON 数据,但使用或 Postman 时请求失败

连接始终被拒绝。

curl http://api.app.localhost/languages
curl: (7) Failed to connect to api.codebottle.localhost port 80: Connection refused

设置

Nginx 配置

server {
    listen          127.0.0.1:80;
    server_name     app.localhost;

    location / {
        proxy_pass       http://localhost:3001;
        proxy_set_header                Host codebottle.localhost;
        proxy_pass_request_headers      on;
    }
}

server {
    listen          127.0.0.1:80;
    server_name     api.app.localhost;
    ...
}

/etc/hosts

#<ip-address>   <hostname.domain.org>   <hostname>
127.0.0.1       app.localhost.dev
127.0.0.1       api.app.localhost.dev

我尝试过

  • 使用--ipv4curl
  • 确保服务器以及 Nginx 正常运行
  • 尝试设置不同的标题,如HostOriginUser-Agent

相关内容