Итак, я нашел официальное руководство 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/