搭建数据库代理服务器

PS:受XX的影响,只能在家办公。但公司内外网隔离,每次访问公司内部网络时都必须使用跳板机过去,但在编写代码时,本地无法访问数据库,所以必须使用代理来使我可以访问进数据库。

现在环境是这样的,有一台服务器, 和若干数据库。我在家通过VPN能访问公司内部的这台CentOS的服务器(当然什么系统不重要,重要的是我能访问到公司的内网去),但不能访问数据库,但这台CentOS服务器可以访问其他数据库,所以我在CentOS上做一个代理,使我可以在本地通过VPN就可以直接访问数据库。
我这个过程中,我使用的是nginx来做了一个反向代理,其过程如下:

一、准备nginx环境

安装过程这个网上有很多教程,其实很简单,就是去官网,首先下载nginx文件包,再上传到服务器中,因为nginx需要依赖与一些库,所以先安装一些库,可以先不管,安装中出问题了再说也行,需要安装的话,大致有下面这些:

安装make:

yum -y install gcc automake autoconf libtool make

安装g++:

yum install gcc gcc-c++

Pcre

yum -y install pcre-devel

openssl

yum -y install openssl openssl-devel

差不多就这些,安装过程中失败的话 可以考虑一下是不是yum源(centos下)的问题,可以考虑替换源。

二、安装nginx

nginx我们一般使用其来做负载均衡,在使用http通信协议应用中使用得较多,但数据库不是走的这个协议,所以配置http模块是没有用的,所以我们需要使用到nginx的Stream模块,这个也是安装的关键。步骤如下:

1、解压下载的nginx压缩包,进去主目录下,可以看到有这样文件

2、配置nginx

在conf目录下去, 可以看到有个nginx.cof文件,对其进行配置。
在这里插入图片描述
在配置文件的http同级目录下加入如下, 我已mysql代理为例子:

 upstream mysql {
        hash $remote_addr consistent;
        server xxxx:3306 weight=5 max_fails=3 fail_timeout=30s;#数据库环境的ip
    }
    server {
        listen 3306;#公网机器监听端口
        proxy_connect_timeout 1s;
        proxy_timeout 36000s;#注意这个,简单的来说就是连接上以后session的保持时间,就是多长时间不活动下次要重新链接,>建议设大一点
        proxy_pass mysql;
    }

位置如下图:
在这里插入图片描述

3、在目录下安装nginx,以及stream模块

 ./configure --with-http_ssl_module --with-stream
 make

验证安装是否成功:

/usr/local/nginx/sbin/nginx -V

带有这个参数就可以了
在这里插入图片描述

4、启动nginx

在nginx的根目录下,可以看到有个objs文件夹,文件夹下有个nginx可执行文件,直接执行就行。
在这里插入图片描述
启动过程中可能回报端口占用错,如:
nginx: [emerg] bind() to 0.0.0.0:3306 failed (98: Address already in use)
  nginx: [emerg] bind() to 0.0.0.0:3306 failed (98: Address already in use)
  nginx: [emerg] bind() to 0.0.0.0:3306 failed (98: Address already in use)
  nginx: [emerg] bind() to 0.0.0.0:3306 failed (98: Address already in use)…

使用netstat -ntpl 查看,然后干掉即可。

三、补充

也可以使用这个来启动:

systemctl start nginx```

停止nginx : 
```powershell
nginx -s stop >>>>快速停止nginx 
nginx -s quit >>>>完整有序的停止nginx

卸载nginx:删除nginx文件即可:

rm -rf /usr/local/nginx

四、注意事项

== 注意,后面每次修改配置文件,需要添加端口的话,不是直接修改上面一开始修改的那个配置文件的。而是去修改安装目录下的 conf/nginx.conf 文件, 可以用==

whereis nginx

命令查看。
在这里插入图片描述
这个路径在安装完nginx后,即make命令后,是有日志输出了的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章