1、问题场景:
项目现场部署应用访问客户侧两个不同ip的热备用的数据库,最初由于所部署应用只配置了客户侧的其中一个数据库ip,导致客户现场数据库自动切换之后应用无法正常访问数据库,应用报错。
2、解决办法:
查询资料找到nginx的stream模块的负载均衡配置可以将不同的两个IP反向代理到同一个地址端口,按照所查询资料进行配置之后问题解决。nginx具体配置如下:
nginx配置完成后,只要将现场的应用配置为代理的ip端口,应用即可访问两个不同的数据库。
3、配置测试过程中遇到的问题:
配置完成后加载nginx配置文件报错,具体报错如下图所示:
该报错出现的原因是因为nginx安装时没有启用nginx的stream模块,导致nginx无法正确识别配置文件。其解决办法如下:
到nginx安装目录重新编译安装nginx,编译时添加./configure--with-stream,编译完成使用make&&make install 安装即可。安装完成后可到nginx的sbin目录使用命令./nginx -V查看stream模块是否安装成功。也可直接使用命令./nginx -t检查配置文件,如果检查不报错即stream模块安装成功。(如果nginx版本比较老可能没有stream模块,此时需要重新部署一个支持stream模块的nginx)。