前言
在一个项目中需要与另一个团队配合,读写他们的数据库,但是由于客户那边的网络权限问题,这我们无法直接访问个数据库所在的服务器,因此通过一台两边都能访问的服务器作为反向代理服务器,使用nginx进行反向代理。
步骤
1、修改配置
vi nginx.conf
末尾添加
stream {
include /usr/nginx/stream.conf;
}
编辑stream.conf
vi /usr/nginx/stream.conf
server {
listen 50001;
proxy_timeout 525600m; //两个成功的读或写操作之间的间隔时间,超出这个时间连接会关闭。这里设置为1年
proxy_pass 1xx.xx.3.4:3306;
}
这里曾遇到一个坑,因为没有配置proxy_timeout ,默认为10m。应用超过10分钟没有数据库操作,nginx会关闭这个server,下次访问就会报错
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure。
2、检查配置是否可用
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
3、平滑更新nginx配置
查看nginx的pid
ps -ef |grep nginx
kill -HUP pid
完成。