参考官方文档,module(姚伟斌阿里团队也可以实现))

称之为反向代理也只要是感觉结构上和Nginx-Tomcat反向代理集群比较像而已,非官方哦~
附上脚本地址,加在最后面

案例:一个朋友要用Nginx代理MySQL(MySQL局域网),不用NAT映射等,好吧,做个笔记。

----------------------------------------正文----------------------------------------

Nginx版本:1.9.x(持tcp的负载均衡,nginx_tcp_proxy_module(姚伟斌阿里团队也可以实现))

Nginx-1.9.7可以在官方下载,自带了TCP代理的模块,但是需要在编译的时候添加参数去明文指定才会编译进去
 参考官方文档,编译时加上如下参数: --with-stream
然后make && make install完成编译安装(介绍nginx安装的资料很多,不再复述)
----------------------------------------配置&验证----------------------------------------

Nginx官方模块: ngx_stream_core_module --with-stream_ssl_module(ssl协议支持,比如MySQL ssl)
官网:

附上一份简单的配置文件

1、查看现有编译

stream {
upstream mysql {
    hash $remote_addr consistent;
    server MySQL_URL:3306 max_fails=3 fail_timeout=30s;
  }

--user=nginx --group=nginx --prefix=/usr/local/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

server {
    listen 13579;
    proxy_connect_timeout 30s;
    proxy_timeout 600s;
    proxy_pass mysql;
  }
 }

2、重新编译:
--user=nginx --group=nginx --prefix=/usr/local/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

启动以后看看端口的状态

注意:--with-stream --with-stream_ssl_module

图片 1

3、配置、检测、重启nginx:
配置:
stream {
upstream mysql {
zone myapp1 64k;
server localhost:3306 weight=1 max_fails=3 fail_timeout=30s;
#server 192.168.1.221:3306 weight=1 max_fails=2 fail_timeout=30s;   
}
server {
        listen 2188;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass mysql;
}
}

和HTTP的反向代理不同的地方就在整个模块, 不再是http模块了,而是stream模块,里面的语法基本是一致的,在upstream里面, 可以看到依然可以利用Nginx的负载均衡策略,所以,Nginx-1.9.x成功加入MySQL中间件豪华午餐~
那么在其他的机器上试试通过网络远程访问这个端口来连接MySQL

检测:
[root@autoCentOS67X64 conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@autoCentos67X64 conf]#

图片 2

启动:
[root@autoCentos67X64 conf]# netstat -atupn|grep nginx
tcp        0      0 0.0.0.0:2188                0.0.0.0:*                  LISTEN      2359/nginx         
[root@autoCentos67X64 conf]#

可以看到通过这个13579的端口确实可以访问到MySQL

4、验证:
[root@log~]# mysql -uroot -prenzhiyuan -h 192.168.1.11 -P2188
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.6.21-log MySQL Community Server (GPL)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql>

----------------------------------------分割线----------------------------------------

图片 3

CentOS 6.2实战部署Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

注意:2188可是Nginx的端口,代理(负载)后端的MySQL。其它玩法大家可自己研究。

使用Nginx搭建WEB服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

下面关于Nginx的文章您也可能喜欢,不妨参考下:

搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

CentOS 7.2下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1  http://www.linuxidc.com/Linux/2016-09/134804.htm

CentOS 6.3下Nginx性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

Nginx实现集群的负载均衡配置过程详解 http://www.linuxidc.com/Linux/2017-02/140549.htm

CentOS 6.3下配置Nginx加载ngx_pagespeed模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

Nginx高级应用--负载均衡与rewrite规则  http://www.linuxidc.com/Linux/2017-02/140476.htm

CentOS 6.4安装配置Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

CentOS 6.4安装配置Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

Nginx安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm

CentOS 6.8下源码安装 Nginx 1.11.10  http://www.linuxidc.com/Linux/2017-03/141908.htm

Nginx日志过滤 使用ngx_log_if不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm

CentOS 7 编译安装Nginx1.10.2 脚本启动失败解决思路 http://www.linuxidc.com/Linux/2017-01/139794.htm

----------------------------------------用途----------------------------------------

Nginx简单实现网站的负载均衡  http://www.linuxidc.com/Linux/2017-02/140351.htm

说起用途的话,可以考虑利用Nginx作为中间件来搭建双主多从的HA集群,然后写一个脚本来监控从库的状态来实时切换Nginx,屏蔽down机主库对应的从库或者是down掉的从库, 之后再上5.7, 利用多主模式来横向扩展MySQL集群的写入能力,同时监控从库的脚本也可以省略点逻辑,不用去判断对应的主库是否失败。

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

做出两套方案以后,再去验证实际的可用性,性能什么的...近期的计划差不多就做好了~

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142221.htm

更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-11/125446p2.htm

图片 4

图片 5

本文由必发娱乐官网发布于必发88手机网站,转载请注明出处: 参考官方文档,module(姚伟斌阿里团队也可以实现))

您可能还会对下面的文章感兴趣: