nginx轉發mysql連接


場景:

訪問UAT環境,只能使用客戶電腦訪問,太難用了,於是就需要在自己電腦上跑代碼,通過客戶電腦中轉來訪問uat環境的數據庫。

選用nginx進行轉發。配置如下:

stream {
    upstream cloudsocket {
       hash $remote_addr consistent;
       server 192.168.182.155:3306 weight=5 max_fails=3 fail_timeout=30s;
    }
    server {
       listen 3306;#數據庫服務器監聽端口
       proxy_connect_timeout 10s;
       proxy_timeout 300s;#設置客戶端和代理服務之間的超時時間,如果5分鍾內沒操作將自動斷開。
       proxy_pass cloudsocket;
    }
}

重啟。

訪問nginx所在機器的ip和配置的3306端口,輸入賬號密碼,就可以轉發mysql連接了。

注意 stream和http是同級別的,不要放入http里面。

原理,查了一頓,沒整明白,以后有時間在研究。

只有一點點:

nginx從1.9.0開始,新增加了一個stream模塊,用來實現四層協議的轉發、代理或者負載均衡等。比如在內網有一個mysql服務,想暴露到公網上去使用,就可以通過nginx代理的方式通過nginx來進行內網mysql的訪問。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM