一、前言
因公司需求,生产环境需要加一台数据库,并且需要外网连接数据库,但公司云服务器弹性公网IP实在太少,只有内网IP,需采用nginx代理端口转发连接内网服务器的数据库
二、服务器环境
1.数据库连接Navicat
2.Nginx代理服务器:外网47.10.8.100,内网192.168.1.131 (centos 7)
3.数据库服务器:内网192.168.1.126 (centos 6)
三、架构图
四、部署Nginx代理服务器(192.168.1.131服务器上)
1.安装Nginx服务(生产环境有Nginx服务直接跳过本步骤)
直接yum安装或者本地localinstall安装都可以,这个无所谓,生产环境建议指定nginx版本rpm安装或者编译安装
注意:编译安装需要编译stream模块,即编译安装时带 –with-stream –with-stream_ssl_module 参数;
#本地安装nginx服务 [root@test ~]# yum localinstall nginx-1.16.1-1.el7.ngx.x86_64.rpm
2.编写Nginx配置文件
注意:stream模块需要在http层外面,和http同一级
[root@test ~]# vim /etc/nginx/nginx.conf events { ...... } stream { server { listen 3309; proxy_connect_timeout 1s; proxy_timeout 300s; proxy_pass 192.168.1.126:3306; } } http { ...... }
3.重启Nginx配置文件
注意:在生产环境建议使用reload平滑重启nginx配置文件,不要直接用restart,这样有可能会导致业务中断几秒,它俩之间的区别可以自己去百度(其实就是一个生效配置文件,一个重启nginx服务kill进程然后启动进程)
[root@test ~]# nginx -s reload
五、部署数据库(192.168.1.126服务器上)
安装MySQL数据库方法很多,我这里直接采用简单的yum安装,生产环境建议编译安装MySQL
#安装数据库 [root@mysql ~]# yum install -y mysql-server mysql mysql-devel #启动数据库 [root@mysql ~]# service mysqld start #开机自启 [root@mysql ~]# chkconfig mysqld on #检查是否启动成功 [root@mysql ~]# chkconfig --list | grep mysqld #设置数据库密码(生产环境密码要复杂点,别像我一样123456) [root@mysql ~]# /usr/bin/mysqladmin -uroot password '123456' #连接数据库 [root@mysql ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 19 Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
六、Navicat连接数据库
注意:这里Navicat主机名或IP地址填写你的Nginx代理服务器外网的IP