nginx代理mysql
背景
最近在做一个项目,和外部客户合作,其中部分服务器是客户提供,将服务部署到客户提供的服务器上。
出于成本考虑,在客户的服务器上,除了网关配置了外网ip,其他服务器都没有配置外网ip
出于安全考虑,希望将研发过程中的sql操作通过审计平台管理起来
因此,需要将客户服务器上部署的mysql服务暴露到外网,并接入审计平台
过程
1、首先配置防火墙,暴露的端口只针对审计平台开放
过程略,这里一般在云平台配置下防火墙就行,如果是自建听过firewall-cmd配置
2、通过nginx将流量抓发到内部的mysql服务
stream {
allow 127.0.0.1;
allow ${审计平台ip}; # 审计平台ip
deny all;
server {
listen ${对外暴露的端口}; # 对外暴露的端口
proxy_pass ${mysql部署ip}:${mysql监听端口};
}
}