nginx代理mysql,需要安装stream插件,stream插件可代理tcp协议、udp协议、websocket协议。
如果nginx是从官网下载的,那么默认不启用stream插件,需要我们在编译的时候指定--with-stream,参考http://nginx.org/en/docs/stream/ngx_stream_core_module.html
如果用的是docker hub的nginx镜像,那么已经启用了。
用nginx -V命令可以查看nginx的版本、安装的插件、命令目录、配置文件目录等。
在配置文件中新增与http同级的stream块,内容如下:
stream {
upstream mysql {
# server 127.0.0.1:3306;
server host.docker.internal:3306;
}
server {
# 监听的映射端口
listen 8080;
proxy_timeout 20s;
proxy_pass mysql;
}
}
访问8080端口,就会代理到下游mysql服务。
可以用mysql命令行客户端连接myql服务器来校验配置是否正确。
nginx代理redis
nginx代理es