政务外网下MySQL实现本地连接绘制文书

起因

由于现场的服务器网络运行环境是政务外网,每次登陆必须通过vpn连接堡垒机才能访问到服务器。
而且windows服务器只有一台,绘制文书的表单构建工具只有一台。

虽然我们可以通过在windows多用户使用,但是表单构建工具确只能在一台机子上允许一个用户连接。
之前是每次绘制文书时将业务数据库打包到本地,导入我本机的mysql里,再用表单构建工具连接。

当前政务外网的服务器做了映射,在电子政务外网下就能访问,这样之前用的互联网地址就先不用了。

之前的互联网地址是互联网服务器通过电信公司方做的网闸访问到政务外网的三台服务器的三个端口,再通过nginx监听互联网服务器的一个端口,再代理网闸的地址端口,做负载,这样互联网环境就能访问了。

思路

因为办公地点可能在家,也可能在单位;在家就是互联网,在单位就是政务外网。
所以还是选择将数据库端口转发到互联网环境,此处仅做文书需求,端口自定义,起到保密。
一般生产环境可以直接利用nginx将数据库端口转发到其他端口,本地直接通过公网ip+端口就可以连接数据库。

想法是目前还在测试搭建阶段,三台应用服务器只抽出一台作一键部署,所以数据库也在这台服务器上,再找另外两台服务器随便一台,通过nginx代理数据库所在服务器的ip:port,监听与互联网服务器通的那个端口,再在互联网服务器上用nginx代理与上一个做nginx转发服务器所通的网闸的ip:port,监听映射到互联网的端口,关闭两台服务器nginx监听的端口的防火墙。

配置nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
user  nginx;
worker_processes 8;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;


events {
worker_connections 1024;
}

#Nginx实现TCP端口转发,需要依赖stream模块,
#即编译安装时带 --with-stream --with-stream_ssl_module 参数,可用nginx -V查看
stream {
server{
listen port; #监听端口
proxy_pass ip:port; #代理地址
}
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

include /etc/nginx/conf.d/*.conf;
}

重启nginx即可实现。

参考链接:https://www.cnblogs.com/kazihuo/p/10755972.html

0%