使用 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 代理的端口。
标签:Postgresql,nginx,Redis,端口,代理,代理服务器,server,Nginx,upstream From: https://www.cnblogs.com/echohye/p/18289809