Nginx反向代理Mysql


  Nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。本文系统环境为 CentOS7,并且已经安装Nginx 1.15.4。

1 安装stream模块

  • 重新配置模块
    进入Nginx安装包目录
./configure --prefix=/Nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-stream --with-stream_ssl_module
  • 重新编译
make && make install
  • 重启Nginx
    进入到Nginx安装目录,运行如下命令:
./sbin/nginx -s reload

2 配置Nginx

  • 修改配置文件nginx.conf
    将Mysql数据库的3306端口代理到8081端口:
stream {
     upstream mysql {
         zone myapp1 64k;
         server localhost:3306 weight=1 max_fails=3 fail_timeout=30s;
     }
     server {
         listen 8081;
         proxy_connect_timeout 1s;
         proxy_timeout 3s;
         proxy_pass mysql;
    }
}
  • 重启Nginx
    进入到Nginx安装目录,运行如下命令:
./sbin/nginx -s reload
  • 开放CentOS7的8081端口
vim /etc/sysconfig/iptables

添加如下内容

-A INPUT -p tcp -m state --state NEW -m tcp --dport 8081 -j ACCEPT

重启iptables

service iptables restart

3 验证

  • 远程运行命名
    连接远程数据库(192.0.0.1),端口8081,用户名为“root”,密码123(注意:“-p”和“123” 之间不能有空格)
mysql -h 192.0.0.1 -P 8081 -u root -p123

ps:如果连接不上,可以试试重启mysql远程机器

参考资料

[1] nginx代理mysql
[2] Nginx反代代理MySQL配置实例
[3] mysql远程连接命令

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呵呵你真行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值