nginx:[emerg] bind() 至 ip:3000 失败(99:无法分配请求的地址)

nginx:[emerg] bind() 至 ip:3000 失败(99:无法分配请求的地址)

我想运行没有服务器名称的服务器(nodejs)。只在我的 IP 地址上运行。这是我的配置文件:

/etc/nginx/sites-available/server.com.conf

server {
    listen xx.xx.xx.xx:3000 default_server;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         "http://xx.xx.xx.xx:3000";
    }
}

当我重新启动 nginx 并查看状态时出现此错误:

nginx:[emerg] bind() 到 ip:3000 失败(99:无法分配请求的地址)

我哪里错了?请帮帮我

答案1

如果你的nodejs在不同的服务器上运行NGINX,你可以upstream在nginx配置中定义。listen仅将参数保留为端口号。

例子:

upstream yournodejsserver {
     server xx.xx.xx.xx:3000;
}

server {
    listen 3000;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         http://yournodejsserver;
    }
}

参考:

相关内容