nginx配置反向代理数据库等插件的原理和方式
nginx配置反向代理数据库等插件的原理和方式
一、反向代理数据库
通过 Nginx 反向代理 mysql数据库, Nginx 的 TCP/UDP 代理模块(stream)实现数据库端口的转发。
1、确认 Nginx 支持 stream 模块
nginx -V 2>&1 | grep -o with-stream
# 若输出 `with-stream` 表示支持,否则需重新编译安装
2、重新安装编译
# 编译并启用 stream 模块
./configure --with-stream --prefix=/usr/local/nginx
make
make install
3、nginx.conf 的 主配置层级添加 stream
# nginx.conf 主配置文件
user nginx;
worker_processes auto;
events {
worker_connections 1024;
}
# 关键配置:stream 模块代理 mysql
stream {
server {
listen 3307; # 外网暴露的端口(非5432避免冲突)
proxy_pass 192.168.1.100:3306; # 内网数据库地址
proxy_connect_timeout 60s;
proxy_timeout 12h; # 长连接超时时间
}
}
http {
# 原有 HTTP 配置(可保留其他服务)
...
}
4、重新加载
nginx -s reload
正常情况配置已经生效,外网的ip如果是本地电脑 127.0.0.1(或者111.2.2.118),就可以通过3307端口访问 内网的数据库了。
二、反向代理geosever
三、反向代理后端服务
四、反向代理前端服务
五、代理