Nginx反代MySQL案例
案例:一个朋友要用Nginx代理MySQL(MySQL局域网),不用VPN,不用NAT映射等,好吧,做个笔记。Nginx版本:1.9.x(持tcp的负载均衡,nginx_tcp_proxy_module(姚伟斌阿里团队也可以实现))
Nginx官方模块: ngx_stream_core_module --with-stream_ssl_module(ssl协议支持,比如MySQL ssl)
官网:http://nginx.org/en/docs/stream/ngx_stream_core_module.html
1、查看现有编译
1
--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
2、重新编译:
1
--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
3、配置、检测、重启nginx:
配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
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;
}
}
检测:
1
2
3
4
# 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
#
启动:
1
2
3
# netstat -atupn|grep nginx
tcp 0 0 0.0.0.0:2188 0.0.0.0:* LISTEN 2359/nginx
#
4、验证:(转载请保留:renzhiyuan.blog.iyunv.com)
1
2
3
4
5
6
7
8
9
10
# 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>
注意:2188可是Nginx的端口,代理(负载)后端的MySQL。其它玩法大家可自己研究。
能再可耻点么,转载都不给个链接,一点都不尊重原创。
页:
[1]