Назад | Перейти на главную страницу

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:// а в этом случае?

Вам нужно удалить 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/