【发布时间】:2019-04-03 21:23:32
【问题描述】:
我有一个 AWS Ubuntu 服务器,它托管一个运行在 127.0.0.1:4100 的反应前端,并使用端口 127.0.0.1:1323 对 Go 应用程序进行 api 调用。我在/etc/nginx/sites-available/default 配置文件中为这两个端口安装了 Nginx 并设置了代理通行证,但我只让 Nginx 调用了前端。使用 chrome inspect 来检查为什么 Go 应用程序没有提供 react 应用程序的某些功能,我看到了这个错误
client.js:772 GET http://127.0.0.1:1323/api/ net::ERR_CONNECTION_REFUSED ERROR 错误:请求已终止 可能原因:网络离线、Access-Control-Allow-Origin 不允许 Origin、正在卸载页面等。
我做错了什么?下面是我的默认配置文件
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
location / {
proxy_pass http://127.0.0.1:4100;
}
location /api {
proxy_pass http://127.0.0.1:1323/;
}
}
【问题讨论】:
-
你的 React 应用是否指向 127.0.0.1:1323/api?
-
@ShawnC。正确我有指向那个的反应应用程序。
-
React 应用程序正在您机器上的浏览器中运行,尝试使用 IP 127.0.0.1 连接到远程服务器,该 IP 是您本地机器的别名。您需要更改您的 React 应用程序以指向您的 AWS IP。
http://AWS_IP/ -
@ShawnC。你摇滚......非常感谢。
-
@ShawnC。我遇到了同样的错误,并按照您的建议解决了。谢谢!但这是一个问题。所以假设服务器名称是 mydomain.com。当用户通过域访问站点时,nginx 会显示用户127.0.0.1:4100,该用户位于 EC2 实例中。在这种情况下,我假设用户(客户端)通过 mydomain.com/api 发送请求,nginx 向127.0.0.1:1323 发送请求,这也在 EC2 实例中,但显然用户需要向AWS_IP 发送请求?为什么nginx不能向127.0.0.1:1323发送请求??
标签: nginx nginx-location nginx-reverse-proxy nginx-config