Nginx反向代理没有将我的http请求发送到在localhost上运行的服务器(POST / GET)

时间:2018-04-20 06:58:50

标签: amazon-web-services express nginx amazon-ec2

我在ec2实例上运行节点快速服务器(ec2-13-229-218-180.ap-southeast-1.compute.amazonaws.com)。它正在运行一个Web服务器来处理将与RDS数据库交互并返回查询的http POST请求。

我的目标是向端点发出POST / GET请求,例如(ec2-13-229-218-180.ap-southeast-1.compute.amazonaws.com/getData),让nginx了解并翻译发送到http://localhost:3000/getData

的POST / GET请求

根据我的理解,我必须像这样设置nginx配置:

server {
    listen 80;
    listen [::]:80;

    root /var/www/example.com/html;
    index index.html index.htm index.nginx-debian.html;

    server_name ec2-13-229-218-180.ap-southeast-1.compute.amazonaws.com;

    location / {

            proxy_server http://localhost:3000;                                                    
            //other stuff
    }

}

Nginx能够使用当前配置运行,但是当我尝试测试发送请求到ec2-13-229-218-180.ap-southeast-1.compute.amazonaws.com/getData时,我是得到404的。谁能帮我这个?感谢。

1 个答案:

答案 0 :(得分:0)

在服务器块之外添加以下代码段

    upstream nodejs {
        server 127.0.0.1:3000;
}

然后替换

proxy_server http://localhost:3000;

通过

proxy_pass       http://nodejs;