nginx四層轉發,訪問內網mysql數據庫

現在很多的企業將業務轉移到雲上,如果數據庫服務器直接暴露在公網,存在被***的風險,雲服務器上的mysql 3306端口基本不對外開放。我們如果想通過外網直接訪問mysql怎麼做呢,這裏我們可以使用nginx端口轉發來實現。
1:首先安裝nginx
./configure --prefix=/application/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-stream && make && make install
這裏必須要加上--with-stream ,四層轉發主要是通過這個模塊來實現的

 2:修改nginx的配置文件
 stream {
                upstream mysql {
                                server 172.16.1.202:3306 weight=1 max_fails=3 fail_timeout=10s;

                }

                server {
                      listen  3307;
                            proxy_pass mysql;
                            proxy_timeout=600s;
                            proxy_connect_timeout=30s;  
                } 

 }

需要注意的是這個配置要寫在http外邊

3:重啓nginx
4:檢查3307端口是否已經起來
5:連接mysql
mysql -uroot -p123456 -h10.0.0.199 -P3307
內網mysql服務器要先授權10.0.0.199的內網ip地址
10.0.0.199 是nginx的外網ip

如果已經安裝了nginx,想要再添加stream模塊
我們先使用nginx -V 查看之前的編譯參數
然後用之前的編譯參數加上--with-stream
./configure --prefix=/application/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-stream
然後執行 make
這裏千萬不要執行make install
到這裏,我們先備份之前的nginx啓動文件
cp /application/nginx/sbin/nginx(,.bak)
然後拷貝編譯目錄下的cp ./objs/nginx /application/nginx/sbin/nginx
這樣就添加上了,然後使用nginx -V查看

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