在 nginx 后面设置 mongodb

在 nginx 后面设置 mongodb

我正在尝试在 nginx 后面设置 mongodb,下面是我使用的配置。但是当我重新加载 nginx 时,我不断收到以下错误。任何帮助都非常感谢。

nginx:[emerg] /etc/nginx/sites-enabled/mongodb:1 中不允许使用“stream”指令

stream {
    server {
        listen 27020;
        proxy_connect_timeout 5s;
        proxy_timeout 20s;
        proxy_pass    stream_mongo_backend;
    }

    upstream stream_mongo_backend {
        server 127.0.0.1:27017;
    }  
}

答案1

检查包含启用站点的文件的 nginx.conf。

这可能是在httpconf 文件的部分中完成的,但是该stream指令仅允许在main如下所述的部分中使用:http://nginx.org/en/docs/stream/ngx_stream_core_module.html#stream

您必须在 nginx.conf 文件本身中移动您的指令:

user ...
...
http {
  ...
}
stream {
  ...
}

答案2

/etc/nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    ....

}

stream {
    server {
        listen  27018;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass    stream_mongo_backend;
    }

    upstream stream_mongo_backend {
        server localhost:27017;
    }
}

http {
...
}

相关内容