Nginx反向代理MySQL

背景

由于WEB服务和MySQL数据库服务分开部署的,而且开发环境和生产环境的数据库相关配置肯定不一样,这样的话导致每次生产上面部署都需要启动WEB服务之后再修改配置文件为生产环境对应的相关配置。所以要求开发人员在程序中数据库等相关配置直接写成127.0.0.1,然后在服务器上面做代理。

Nginx代理配置

  • 在nginx.conf最后添加如下;
stream {

    include /etc/nginx/stream/*.conf;
}
  • 在nginx.conf所在目录新建stream文件夹
  • 在stream文件夹新建mysql.conf文件
  • 在mysql.conf文件输入
upstream mysql {
    server xx.xx.xx.xx:3306;
}

server {
    listen 127.0.0.1:3306;
    proxy_connect_timeout 8s;
    proxy_timeout 24h;
    proxy_pass mysql;
}

启动Ngnix并添加开机启动

systemctl start nginx.service
systemctl enable nginx

程序中数据库配置

#MySQL
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&useSSL=false
jdbc.username=root
jdbc.password=password

 

你可能感兴趣的:(数据库,nginx,mysql,服务器)