云计算百科
云计算领域专业知识百科平台

nginx作为反向代理服务器:代理MySQL、Postgresql、Redis及多个TCP服务

https://www.cnblogs.com/echohye/p/18289809

使用 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 代理的端口。

赞(0)
未经允许不得转载:网硕互联帮助中心 » nginx作为反向代理服务器:代理MySQL、Postgresql、Redis及多个TCP服务
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!