Nginx代理Mysql

发布时间 2023-07-11 18:55:44作者: 怡安

10.2.24.161部署nginx,代理10.2.24.191:3306数据库

1. 安装stream模块

nginx默认不会编译stream模块的,需要在编译的时候,指定--with-stream
./configure --prefix=xxx --add-module=xxxx --add-module=xxx --with-stream

我在10.2.24.161执行:

./configure --prefix=/opt/local/nginx --with-stream 
make && make install

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

2. Nginx配置代理Mysql:

stream {
    upstream mysqlserver {
        server 10.2.24.191:3306;
    }
    server {
        listen 33060;
        #proxy_connect_timeout 10s;
        #代理时间默认10分钟,在这个时间范围内,没有数据传递,就会关闭连接,如果这个时间设置短,就会在该主机上产生大量的FIN_WAIT2和TIME_WAIT状态的tcp连接,连接的复用率会变低
        #proxy_timeout 10m; 
        # 这里的proxy是stream-proxy模块,不是http-proxy
        proxy_pass mysqlserver;
    }
}

Nginx配置完成以后,需要启动

//软连接
ln -s /usr/local/nginx/sbin/nginx  /usr/local/bin

nginx -t

mkdir logs

nginx -c /usr/local/nginx/conf/nginx.conf

nginx -c /usr/local/nginx/conf/nginx.conf

nginx -s stop

启动之后

Navicat连接,主机为nginx服务器ip:10.2.24.161,端口为:33060

 成功!