mongodb nginx代理问题

本文介绍了解决在使用Nginx代理MongoDB端口过程中遇到的错误的方法。通过将代理方式从HTTP更改为TCP,并调整配置文件,成功解决了消息长度无效的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在代理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也如法炮制即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值