1. 程式人生 > 其它 >Centos 7配置使用nginx反向代理mysql

Centos 7配置使用nginx反向代理mysql

背景:由於WEB服務和MySQL資料庫服務分開部署的,由於網路問題限制,有時需要通過中間代理伺服器跳轉連線MySQL,所以需要在中間伺服器上配置代理。

1、新增stearm模組

# nginx通常代理http協議屬於第七層,要代理其他協議就要用到第四層協議,需要用到Nginx的stream模組。

# 檢視nginx是否編譯時添加了stream模組,如下圖
nginx -V
# 如果未新增stream模組,請重新編譯新增
./configure --with-stream

2、配置nginx反向代理

# 在nginx.conf中新增stream模組
stream {
 
    include /etc/nginx/stream/*.conf;
}

# 在nginx安裝路徑下建立stream資料夾,並在下面建立stream的反向代理配置檔案
mkdir -p /etc/nginx/stream

cd /etc/nginx/stream

vim mysql3306.conf

# 在mysql3306.conf中新增代理配置
upstream mysql {
    server x.x.x.x:3306;
}
 
server {
    listen 3306;
    proxy_connect_timeout 8s;
    proxy_timeout 24h;
    proxy_pass mysql;
}
# x.x.x.x是你實際伺服器ip地址

# 重啟nginx
nginx -c /etc/nginx/nginx.conf

3、防火牆配置

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

4、驗證mysql連線

mysql -h {host} -P 3306 -uroot -p
# 這裡的host為代理伺服器的ip地址