我正在try 将Nginx设置为访问MongoDB数据库的反向代理.默认情况下,Mongo侦听27017端口.我想做的是重定向主机名,例如mongodb.我的网站.com并将其传递给mongodb服务器.通过这种方式,我将从外部网络关闭已知的27017端口,并从一个隐藏的url访问我的数据库,如我给出的示例所示.
因此,我try 使用以下配置设置Nginx:
server {
listen 80;
server_name mongo.mysite.com;
gzip off;
location / {
proxy_pass http://127.0.0.1:27017;
proxy_redirect off;
proxy_buffering off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
}
}
因此,在完成此操作后,我try 使用命令mongo mongo.mysite.com:80
从cmd连接mongo shell,并返回以下错误:
2015-08-06T13:44:32.670+0300 I NETWORK recv(): message len 1347703880 is invalid. Min 16 Max: 48000000
2015-08-06T13:44:32.670+0300 I NETWORK DBClientCursor::init call() failed
2015-08-06T13:44:32.674+0300 E QUERY Error: DBClientBase::findN: transport error: mongo.therminate.com:80 ns: admin.$cmd query: { whatsmyuri: 1 }
at connect (src/mongo/shell/mongo.js:181:14)
at (connect):1:6 at src/mongo/shell/mongo.js:181
exception: connect failed
在Nginx访问日志(log)中,我还看到:
94.66.184.128 - - [06/Aug/2015:10:44:32 +0000] "<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xD4\x07\x00\x00\x00\x00\x00\x00admin.$cmd\x00\x00\x00\x00\x00\x01\x00\x00\x00\x15\x00\x00\x00\x10whatsmyuri\x00\x01\x00\x00\x00\x00" 400 172 "-" "-"
有人知道这里出了什么问题吗?谢谢