【发布时间】:2020-07-19 20:10:52
【问题描述】:
我已经在 AWS 上设置了一个服务器,一切正常,我能够从服务器获取数据但无法 POST,POST 数据不断给出 403 禁止响应,
我检查了 nginx 日志,调用从未到达那里,但 GET 请求显示在 access.log。
error.log 是空的,那里什么也没有发生。
server {
listen 80;
listen [::]:80 default_server;
server_name example.com www.example.com;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:3004";
}
}
是的,有一个负载均衡器在 443 端口上运行并转发到实例上的 80 端口。
【问题讨论】:
-
你能分享更多关于它的细节吗?您的实例前面有什么(负载均衡器...)吗?一般来说,AWS 安全组不在该级别上工作。你也可以分享完整的 NGINX 配置吗?
sudo nginx -T -
我已经编辑了我的问题,请看一下。
-
感谢我仍然不完全清楚:您是说您在同一个 EC2 实例上的端口 443 上列出,然后您将此请求代理到在端口 80 上运行的服务器,这将请求代理到您在端口 3004 中列出的应用程序?除此之外,尝试向在 127.0.0.1:3004 上运行的应用发送 POST 请求。
curl -X POST http://127.0.0.1:3004如果需要,发送一些数据。 -
如果我从同一台服务器或堡垒服务器卷曲,它就像魅力一样工作,但从负载均衡器,它不会。
-
我在服务器的 80 端口和负载均衡器的 443 端口上列出,例如调用负载均衡器:443 -> 服务器:80,然后代理到我的应用程序的 3004。跨度>
标签: nginx amazon-ec2 http-post amazon-linux-2