NginX 和 Galera Cluster 是朋友吗?

NginX 和 Galera Cluster 是朋友吗?

因此,我找到了 NginX 的官方教程,了解如何使用 NginX Plus 作为 MariaDB 集群的代理。但是,如果我使用标准 NginX(不是 Plus 版本)执行此操作,我会不断收到错误 nginx: [emerg] invalid URL prefix in /etc/nginx/conf.d/mariadb.conf:10

这是配置

upstream db {
    server 10.0.0.101:3306;
    server 10.0.0.102:3306;
    server 10.0.0.103:3306;
}

server {
    listen 3306;
    location / {
        proxy_pass db;
        proxy_connect_timeout 1s;
    }
}

我的问题是这是否仅在 NginX Plus 上可用,或者我做错了什么?我知道,通常我需要在 proxy_pass 中添加前缀,https://但在这种情况下呢?

答案1

您需要删除这些location / {}内容。这是针对 http 服务器的,不是针对普通 TCP 的。您需要将其包装成一个stream块。

stream {
    upstream db {
        server 10.0.0.101:3306;
        server 10.0.0.102:3306;
        server 10.0.0.103:3306;
    }

    server {
        listen 3306;
        proxy_pass db;
        proxy_connect_timeout 1s;
    }
}

您可以在这里找到文档:https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/

相关内容