Nginx代理mongoDB TCP Stream

Nginx代理mongoDB TCP

Nginx代理mongoDB TCP

mongoDB申请的是公有云服务器,Dataworks在专有云服务器上,连接不通。
通过专有云nginx转发mongoDB 然后用SLB代理nginx端口。Dataworks连专有云即可

在这里插入图片描述
这里讲道理nginx其实DataWorks已经可以连接,但是nginx也是台ECS需要开放端口,而DataWorks ip不固定,添加会很复杂。所以用SLB代理一层,这样就不需要添加白名单了。
如果说没有这种限制,到nginx结束了

mongodb需要tcp 而nginx提供了http 所以会出错 需要在nginx.conf中增加如下配置

配置

采用docker

docker run --name nginx_mongodb -d -p 3717:80 -v /data/nginx3/html:/usr/share/nginx/html -v /data/nginx3/conf/nginx.conf:/etc/nginx/nginx.conf  -v /data/nginx3/logs:/var/log/nginx -v /data/nginx3/conf.d:/etc/nginx/conf.d  -v /data/nginx3/tcp.d:/etc/nginx/tcp.d  -d nginx

最好能进nginx里看下 –with-stream这个模块有没有,stream需要这个模块的支持

#查看
nginx -V

最简单配置,直接修改/data/nginx3/conf/nginx.conf即可

worker_processes  1;

events {
    worker_connections  1024;
}

stream {

     upstream stream_mongo {
      # 监听mongoDB服务的ip和端口
      server xx:3717;

	}
	
    server {
        #注意配置80,监听nginx的
        listen  80;
        #proxy_connect_timeout 8s;
        #proxy_timeout 24h;
        proxy_pass    stream_mongo;
    }
}

然后docker restart或者reload一下即可

复杂些

nginx.conf (请注意,stream配置不能放到http内,即不能放到/data/nginx/conf.d/,因为stream是通过tcp层转发,而不是http转发)

user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
.................
}

# tcp层转发的配置文件夹

include /data/nginx3/tcp.d/*.conf;

在这里插入图片描述
新建一个以.conf结尾的配置文件

worker_processes  1;

events {
    worker_connections  1024;
}

stream {

     upstream stream_mongo {
      # 监听mongoDB服务的ip和端口
      server xx:3717;

	}
	
    server {
        #注意配置80,监听nginx的
        listen  80;
        #proxy_connect_timeout 8s;
        #proxy_timeout 24h;
        proxy_pass    stream_mongo;
    }
}

然后重启即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值