nginx 代理mongodb

代理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也如法炮製即可
————————————————
版權聲明:本文爲CSDN博主「benjen」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zhao4471437/article/details/53261276

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章