nginx作为反向代理服务器:代理MySQL、Postgresql、Redis及多个TCP服务
使用 Nginx 作为反向代理服务器,可以代理 MySQL、PostgreSQL、Redis 及多个 TCP 服务。这需要配置 Nginx 的 stream
模块。
以下是详细的配置步骤:
1. 确保 Nginx 支持 stream
模块
首先,确保 Nginx 已经编译并支持 stream
模块。运行以下命令检查:
nginx -V
在输出中查找 --with-stream
和 --with-stream_ssl_module
。如果没有,需要重新编译或安装支持 stream
模块的 Nginx 版本。
2. 配置 Nginx 以代理多个 TCP 服务
编辑 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf
或 /etc/nginx/conf.d/default.conf
),添加 stream
块配置:
示例配置
stream {
# MySQL 代理配置
upstream mysql_upstream {
server 127.0.0.1:3306; # 替换为你的 MySQL 服务器地址和端口
}
server {
listen 3306; # 代理监听的端口,可以与 MySQL 的端口相同或不同
proxy_pass mysql_upstream;
}
# PostgreSQL 代理配置
upstream postgres_upstream {
server 127.0.0.1:5432; # 替换为你的 PostgreSQL 服务器地址和端口
}
server {
listen 5432; # 代理监听的端口,可以与 PostgreSQL 的端口相同或不同
proxy_pass postgres_upstream;
}
# Redis 代理配置
upstream redis_upstream {
server 127.0.0.1:6379; # 替换为你的 Redis 服务器地址和端口
}
server {
listen 6379; # 代理监听的端口,可以与 Redis 的端口相同或不同
proxy_pass redis_upstream;
}
# 其他 TCP 服务代理配置
upstream custom_tcp_upstream {
server 127.0.0.1:12345; # 替换为你的自定义 TCP 服务地址和端口
}
server {
listen 12345; # 代理监听的端口,可以与自定义 TCP 服务的端口相同或不同
proxy_pass custom_tcp_upstream;
}
}
3. 测试和应用配置
在应用新的配置之前,测试 Nginx 配置文件的语法:
sudo nginx -t
如果配置正确,重启 Nginx 使新的配置生效:
sudo systemctl restart nginx
4. 验证代理连接
使用相应的客户端工具连接到 Nginx 代理的端口,以验证代理是否工作正常。
验证 MySQL 代理
mysql -h your_nginx_server_ip -P 3306 -u your_mysql_user -p
验证 PostgreSQL 代理
psql -h your_nginx_server_ip -p 5432 -U your_postgres_user -d your_database
验证 Redis 代理
redis-cli -h your_nginx_server_ip -p 6379
验证自定义 TCP 服务代理
根据自定义 TCP 服务使用相应的客户端工具连接到 Nginx 代理的端口。
分类:
nginx
, SQL / PostgreSQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!