日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

1.前言

我們的生產環境基本上都部署在云服務器上,例如應用服務器、MySQL服務器等。如果MySQL服務器直接暴露在公網,就會存在很大的風險,為了保證數據安全,MySQL服務器的端口是不對外開放的。

好巧不巧,線上業務遇到bug了,開發的小伙伴需要遠程連接MySQL來查看數據,那應該怎么辦呢?

我們可以通過Nginx代理(“跳板機”)來進行連接。

2.Nginx代理連接

要實現對連接的代理轉發,我們需要一臺服務器并安裝Nginx,且與MySQL服務器處于一個內網之中,內網之間可以訪問。

其次,我們需要用到ngx_stream_core_module模塊,該模塊不是默認構建的,我們需要在configure時添加--with-stream來進行構建。

添加過程可以參照【Nginx基本命令&不停機版本升級】一文進行,我們這里不再贅述。

既然要用到ngx_stream_core_module模塊,首當其沖,是看看其提供的指令,我們才知道怎么來進行配置。

1)stream

該指令定義了stream服務器。與http塊平級,定義在mAIn塊中。

作用域:main

語法:stream {...}

示例:

 stream {
     server {
         ......
     }
 }

2)server

該指令定義一個虛擬主機,與http塊中的server類似。我們可以在stream塊中定義多個server塊。

作用域:stream

語法:server {...}

 stream {
     server {
         ......
     }
     server {
         ......
     }
 }

3)listen

該指令定義虛擬主機server要監聽的socket的地址和端口。

作用域:server

語法:listen address:port;

示例:

 listen 127.0.0.1:3306;
 listen *:3306;
 # 效果與listen *:3306一樣
 listen 3306;
 listen localhost:3306;

4)配置示例

MySQL服務器,端口3306(單機環境)

 stream  {
     server {
         listen 3306;
         proxy_pass 192.168.110.101:3306;
     }
 }

MySQL服務器,端口3306(集群環境)

 stream  {
     upstream mysql_socket {
         server 192.168.110.101:3306;
     }
     server {
             listen 3306;
             proxy_pass mysql_socket;
     }
 }

此時,我們就可以通過例如Navicat等客戶端進行連接。

3.限制訪問IP

實現了對連接的代理,所有人都可以通過訪問Nginx來連接MySQL服務器,解決了外網無法連接的問題。

為了更進一步的縮小訪問范圍,保證數據安全,我們可以限制只有公司網絡的IP地址可以通過Nginx進行連接。

Nginx提供了ngx_stream_access_module模塊,其指令非常簡單,僅包含allow和deny指令。

1)allow

該指令設置指定的IP允許訪問。可以和deny指令配合使用

作用域:stream, server

語法:allow address | CIDR | unix: | all;

示例:

 # 允許192.168.110.1訪問
 allow 192.168.110.1;
 
 # 允許192.168.110.1到192.168.255.254
 allow 192.168.110.0/16;
 
 # 允許192.168.110.1到192.168.110.254
 allow 192.168.110.0/24;
 
 # 允許所有的IP訪問
 allow all;

2)deny

該指令設置指定的IP禁止訪問??梢院蚢llow指令配合使用。

作用域:stream, server

語法:deny address | CIDR | unix: | all;

 # 禁止192.168.110.1訪問
 deny 192.168.110.1;
 
 # 禁止192.168.110.1到192.168.255.254
 deny 192.168.110.0/16;
 
 # 禁止192.168.110.1到192.168.110.254
 deny 192.168.110.0/24;
 
 # 禁止所有的IP訪問
 deny all;

3)配置示例

禁止所有的IP訪問,192.168.110.100除外。

 allow 192.168.110.100;
 deny all;

Tips:如果指定了allow,需要配合deny使用,否則就是允許所有的IP地址訪問。

4.綜合案例

只允許192.168.110.100通過Nginx連接MySQL服務器。

 stream  {
     allow 192.168.110.100;
     deny all;
     server {
         listen 3306;
         proxy_pass 192.168.110.101:3306;
     }
 }

分享到:
標簽:Nginx
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定