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。