日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
如何用 Nginx 代理 MySQL 連接,并限制可訪問(wèn) IP?

1.前言

我們的生產(chǎn)環(huán)境基本上都部署在云服務(wù)器上,例如應(yīng)用服務(wù)器、MySQL服務(wù)器等。如果MySQL服務(wù)器直接暴露在公網(wǎng),就會(huì)存在很大的風(fēng)險(xiǎn),為了保證數(shù)據(jù)安全,MySQL服務(wù)器的端口是不對(duì)外開(kāi)放的。

成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來(lái),是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元西烏珠穆沁做網(wǎng)站,已為上家服務(wù),為西烏珠穆沁各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

好巧不巧,線上業(yè)務(wù)遇到bug了,開(kāi)發(fā)的小伙伴需要遠(yuǎn)程連接MySQL來(lái)查看數(shù)據(jù),那應(yīng)該怎么辦呢?

我們可以通過(guò)Nginx代理(“跳板機(jī)”)來(lái)進(jìn)行連接。

2.Nginx代理連接

要實(shí)現(xiàn)對(duì)連接的代理轉(zhuǎn)發(fā),我們需要一臺(tái)服務(wù)器并安裝Nginx,且與MySQL服務(wù)器處于一個(gè)內(nèi)網(wǎng)之中,內(nèi)網(wǎng)之間可以訪問(wèn)。

其次,我們需要用到ngx_stream_core_module模塊,該模塊不是默認(rèn)構(gòu)建的,我們需要在configure時(shí)添加--with-stream來(lái)進(jìn)行構(gòu)建。

添加過(guò)程可以參照【Nginx基本命令&不停機(jī)版本升級(jí)】一文進(jìn)行,我們這里不再贅述。

既然要用到ngx_stream_core_module模塊,首當(dāng)其沖,是看看其提供的指令,我們才知道怎么來(lái)進(jìn)行配置。

(1) stream

該指令定義了stream服務(wù)器。與http塊平級(jí),定義在main塊中。

  • 作用域:main
  • 語(yǔ)法:stream {...}

示例:

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

(2) server

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

  • 作用域:stream
  • 語(yǔ)法:server {...}
 stream {
     server {
         ......
     }
 }

(3) listen

該指令定義虛擬主機(jī)server要監(jiān)聽(tīng)的socket的地址和端口。另外,搜索公眾號(hào)頂級(jí)架構(gòu)師后臺(tái)回復(fù)“算法”,獲取一份驚喜禮包。

  • 作用域:server
  • 語(yǔ)法:listen address:port;

示例:

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

(4) 配置示例

MySQL服務(wù)器,端口3306(單機(jī)環(huán)境)

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

MySQL服務(wù)器,端口3306(集群環(huán)境)

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

此時(shí),我們就可以通過(guò)例如Navicat等客戶端進(jìn)行連接。

3.限制訪問(wèn)IP

實(shí)現(xiàn)了對(duì)連接的代理,所有人都可以通過(guò)訪問(wèn)Nginx來(lái)連接MySQL服務(wù)器,解決了外網(wǎng)無(wú)法連接的問(wèn)題。

為了更進(jìn)一步的縮小訪問(wèn)范圍,保證數(shù)據(jù)安全,我們可以限制只有公司網(wǎng)絡(luò)的IP地址可以通過(guò)Nginx進(jìn)行連接。

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

(1) allow

該指令設(shè)置指定的IP允許訪問(wèn)??梢院蚫eny指令配合使用

  • 作用域:stream, server
  • 語(yǔ)法:allow address | CIDR | unix: | all;

示例:

 # 允許192.168.110.1訪問(wèn)
 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訪問(wèn)
 allow all;

(2) deny

該指令設(shè)置指定的IP禁止訪問(wèn)。可以和allow指令配合使用。

  • 作用域:stream, server
  • 語(yǔ)法:deny address | CIDR | unix: | all;
# 禁止192.168.110.1訪問(wèn)
 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訪問(wèn)
 deny all;

(3) 配置示例

禁止所有的IP訪問(wèn),192.168.110.100除外。

allow 192.168.110.100;
 deny all;

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

4.綜合案例

只允許192.168.110.100通過(guò)Nginx連接MySQL服務(wù)器。

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

網(wǎng)站題目:如何用 Nginx 代理 MySQL 連接,并限制可訪問(wèn) IP?
分享鏈接:http://m.5511xx.com/article/dpdihgo.html