Mongoldb通过nginx(流)反向代理通过http

时间:2016-02-23 10:44:41

标签: ruby-on-rails mongodb nginx reverse-proxy

我想将托管的mongo数据库服务移动到防火墙后面的自托管解决方案。 rails app上托管的ruby通过MongoMapper连接。我想首先只移植数据库,然后可能是rails应用程序上的ruby。

我在nginx 1.9.11上设置了server_name data.example.com端口80,以重定向到另一个上游端口localhost:8090

这样做是因为我也有这个nginx服务于网站example.com:80www.example.com:80,但我只希望data.example.com:80连接到上游tcp端口。我这样做,因为server_name只是http部分,即在流服务器设置中可以理解为不可用)

所以"data-web-domain":80localhost:8090配置:

server {
    listen       80;
    server_name data.example.com;
    location / {
        proxy_pass http://localhost:8090;
}

现在我通过流将localhost:8090传递给mongodb以允许tcp连接。

stream {
    server {
        listen                8090;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass    stream_mongo_backend;
      }
      upstream stream_mongo_backend {
          server localhost:27017;
      }
 }

可以浏览到data.example.com

  

块引用   您正尝试在本机驱动程序端口上访问MongoDB。对于http诊断访问,请将1000添加到端口号

好的以上配置允许Web域的Web请求从mongodb返回错误消息

当直接连接到服务器时,通过localhost或服务器的unix域名到端口8090,流重定向到27017工作,即此mongo命令行连接

mongo server-unix-name:8090/dummydb -udummyuser -pdummysecret

但是通过网络域名

mongo data.example.com:80/dummydb -udummyuser -pdummysecret

data.example.com:80localhost:8090之间有什么区别?

0 个答案:

没有答案