如何使用Nginx允许到本地MySQL数据库的安全远程连接?

问题描述 投票:0回答:1

如果可能,我想避免将默认端口3306对外开放。我们正在运行Nginx,以用于其他应用程序的反向代理。这里的目标是从本地网络外部以客户端(例如MySQL Workbench)访问MySQL数据库。 MySQL服务器在Debian(Linux)虚拟机上运行。

我如下所述配置了一个服务器块。在MySQL Workbench中使用非root用户连接到mysql.domain.com的端口80,将导致失败。

服务器块:

server {

    server_name mysql.domain.com;

    location / {
        proxy_pass http://localhost:3306/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
    }
}

错误消息:

Failed to Connect to MySQL at mysql.domain.com:80 with user non-root. 
Lost connection to MySQL at 'waiting for initial communication packet', system error: 10060
mysql nginx reverse-proxy remote-access
1个回答
0
投票

这里的目标是从本地网络外部通过客户端(例如MySQL Workbench)访问MySQL数据库

[所有现代MySQL GUI客户端均支持SSH隧道。这是最安全的连接方法,需要在服务器端进行零配置:如果可以通过SSH连接,则可以连接到该主机上的MySQL。

在MySQL Workbench中,创建连接时,选择“基于SSH的标准TCP / IP”作为连接方法,然后填写SSH连接详细信息和MySQL连接详细信息。关键是将MySQL服务器设置为127.0.0.1,因为您通常希望连接到在SSH进入的计算机上运行的MySQL实例。这就是全部。

© www.soinside.com 2019 - 2024. All rights reserved.