成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何用 Nginx 代理 MySQL 連接,并限制可訪問 IP?

數據庫 網絡
線上業務遇到bug了,開發的小伙伴需要遠程連接MySQL來查看數據,那應該怎么辦呢?我們可以通過Nginx代理(“跳板機”)來進行連接。

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 {
         ......
     }
 }

(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禁止訪問。可以和allow指令配合使用。

  • 作用域: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;
     }
 }
責任編輯:趙寧寧 來源: 技術老男孩
相關推薦

2019-08-27 08:32:01

nginx訪問頻率下載速率

2011-03-17 15:16:38

2009-06-24 16:26:17

MyEclipse

2010-10-08 11:27:34

MySql訪問限制

2025-02-28 05:50:12

2009-06-19 14:44:04

ODBCMySQL

2018-01-10 10:15:48

NginxIP問題

2021-06-30 13:13:55

IP地址網絡IP限制

2009-07-16 16:44:03

下載JDBC

2011-03-14 16:05:52

IPtables流量

2010-03-25 17:58:27

2022-07-01 07:33:24

nginx反向代理測試

2024-04-07 00:00:00

Linux控制資源

2023-09-28 15:43:03

裝飾者模式代理定義

2018-01-18 10:53:31

LinuxUnixcurl命令

2020-09-02 13:22:28

IP訪問Oracle數據庫

2023-09-13 07:16:31

Ngnix代理服務器

2011-07-27 13:58:48

EclipseMySQL

2011-04-06 17:30:46

ACL

2021-12-27 10:56:10

MySQL數據庫命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区在线观看视频 | 99久久久久久99国产精品免 | 日韩精品极品视频在线观看免费 | 91av在线影院 | 国产黄色大片在线免费观看 | 亚洲一区二区三区久久久 | 亚洲精品乱码久久久久久蜜桃91 | 一区精品在线观看 | 国产a视频| 欧美视频二区 | www成人免费 | 四虎av电影 | 国产精久久久久久 | 亚洲一区二区三 | 伊人免费在线观看高清 | 午夜欧美一区二区三区在线播放 | 午夜寂寞影院在线观看 | 九九视频在线观看视频6 | 一本一道久久a久久精品蜜桃 | 久久手机在线视频 | 亚洲视频自拍 | 亚洲日本欧美日韩高观看 | 国产一区91精品张津瑜 | 亚洲国产成人精品女人久久久野战 | 国产欧美在线播放 | 国产91久久精品一区二区 | 天天色天天色 | 久久综合狠狠综合久久 | 国产亚洲精品精品国产亚洲综合 | 欧美日韩一区二区视频在线观看 | 精品一区二区三区在线观看 | 日韩在线观看中文字幕 | 国产美女永久免费无遮挡 | 区一区二区三在线观看 | 亚洲欧美综合精品久久成人 | 亚洲在线视频 | 伊人网综合在线观看 | 亚洲精品成人 | 亚洲成人av | 精品视频一区二区三区 | 夜夜爽99久久国产综合精品女不卡 |