我想将托管的mongo数据库服务移动到防火墙后面的自托管解决方案。 rails app上托管的ruby通过MongoMapper连接。我想首先只移植数据库,然后可能是rails应用程序上的ruby。
我在nginx 1.9.11上设置了server_name data.example.com
端口80,以重定向到另一个上游端口localhost:8090
。
这样做是因为我也有这个nginx服务于网站example.com:80
和www.example.com:80
,但我只希望data.example.com:80
连接到上游tcp端口。我这样做,因为server_name只是http部分,即在流服务器设置中可以理解为不可用)
所以"data-web-domain":80
到localhost: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:80
与localhost:8090
之间有什么区别?