![HTTP 请求在浏览器上有效,但在其他所有情况下失败](https://linux22.com/image/715059/HTTP%20%E8%AF%B7%E6%B1%82%E5%9C%A8%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8A%E6%9C%89%E6%95%88%EF%BC%8C%E4%BD%86%E5%9C%A8%E5%85%B6%E4%BB%96%E6%89%80%E6%9C%89%E6%83%85%E5%86%B5%E4%B8%8B%E5%A4%B1%E8%B4%A5.png)
我在做什么
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
我尝试过
- 使用
--ipv4
curl
- 确保服务器以及 Nginx 正常运行
- 尝试设置不同的标题,如
Host
、Origin
和User-Agent