代理mongodb的端口的时候出现以下error:
recv(): message len 1347703880 is invalid. Min 16 Max: 48000000
这是因为mongodb接口走的是tcp,但是之前我把nginx代理设置为了http
.conf改成如下,就ok了
stream {
server {
listen 120.87.157.166:27017;
#server_name 120.27.157.166;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass stream_mongo_backend;
}
upstream stream_mongo_backend {
server 10.27.1.55:27017;
}
}
注意proxy_connect_timeout是指tcp 握手的超时时间
proxy_timeout是指在这段时间内如果没有数据传输那就触法timeout,所以这里可以时间设长一点:10m
而且这个.conf不能直接放在conf.d文件件下面,
需要在nginx.conf加入一行
#tcp
include /etc/nginx/tcp.d/*.conf;
再把mongo.conf放入其内
然后就ok了
对了mysql也如法炮制即可
————————————————
版权声明:本文为优快云博主「benjen」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/zhao4471437/article/details/53261276