前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx代理转发Mysql

Nginx代理转发Mysql

作者头像
码客说
发布2021-01-04 09:57:43
13.1K1
发布2021-01-04 09:57:43
举报
文章被收录于专栏:码客码客

前言

百度百科是这样写的

Nginx (engine x) 是一个高性能的HTTP反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

但是从Nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。

比如在内网有一个mysql服务,想暴露到公网上去使用,就可以通过nginx代理的方式通过nginx来进行内网Mysql的访问。

也就是说Nginx本来只支持HTTP,添加stream模块后就支持TCP/UDP了。

添加stream模块

查看是否添加该模块

代码语言:javascript
复制
nginx -V

搜索是否包含--with-stream,如果包含则已添加过此模块。

如果没有需要编译添加

代码语言:javascript
复制
./configure  --prefix=/opt/apps/nginx --with-stream
make && make install

注意

--prefix=/opt/apps/nginx 是nginx的执行文件位置,根据自己的服务器的实际情况配置。

转发TCP(Mysql)配置

假如Nginx的公网IP为110.119.120.121,Mysql所在的同一个内网的内网IP为192.168.1.20

代码语言:javascript
复制
#stream配置
stream {
    server {
       listen 13306; 
       proxy_connect_timeout 1s;
       proxy_timeout 3s;
       proxy_pass 192.168.1.20:3306;    
    }
}

http {
}

这样我们就能通过110.119.120.121:13306访问到Mysql服务了。

注意

  1. stream配置项和http同级。
  2. 不支持不同域名转发不同Mysql的功能。

这样做的好处

  • 避免数据库服务器直接暴漏在公网
  • 方便数据库秒级切换

UDP负载均衡

下面就是UDP负载均衡的示例

代码语言:javascript
复制
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

stream {
    upstream dns {
       server 192.168.111.99:10086;
       server 192.168.111.100:10086;
    }

    server {
        listen 192.168.111.98:10086 udp;
        proxy_responses 1;
        proxy_timeout 20s;
        proxy_bind $server_addr:$remote_port;
        proxy_pass dns;
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 添加stream模块
  • 转发TCP(Mysql)配置
  • UDP负载均衡
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档