Nginx反向代理访问内网服务器

问题描述

​ 公司给配的台式机太垃圾了,不能访问外部网络就算了,还没有maven私服。近期项目不光得使用maven还得使用内网中的数据库之类,台式机太卡只能用自己的笔记本用爱发电。公司内网需要通过ASM入网小助手进行认证,一旦安装了ASM入网小助手笔记本就无法使用U盘了,并且还会乱改你的注册表。不想装小助手还想连接内网的数据库服务,那要怎么办呢?于是想到使用Nginx进行反向代理。

Nginx反向代理配置

先上个配置

#根节点下
stream {
    server {
        listen 12345; #监听本机的端口
        proxy_pass 192.168.123.123:3306; #代理内网的mysql
    }
}

使用上面配置启动nginx后,在本机就可以使用127.0.0.1:12345来连接mysql了。

按照这种方法只要自己的笔记本接入内网,再在内网台式机上进行如此配置nginx,使用[内网台式机IP]:12345就可以连接内网的mysql了。

优雅的进行Nginx反向代理配置

​ 直接改nginx.conf似乎不是很友好,配置多了也记不清哪个端口代理哪个服务了,同事要用的话还需要说明代理关系。于是乎就有了写一个nginx配置管理系统的想法,主要需求为:代理关系说明、代理配置、nginx控制。原本想使用Qt编写GUI界面程序,但是发现解析Nginx配置文件有点难受,于是使用SpringBoot+Layui+MybatisPlus+Sqlite做了一套web管理系统。设计思路是每次加载nginx.conf前根据数据库数据生成配置文件,由后端提供控制nginx停止与启动的接口。详细代码和release请参见GitHub