Nginx : Stream module を利用する2024/02/13 |
Nginx での Stream module の設定です。
任意の TCP, UDP (1.9.13), UNIX-domain sockets をプロキシ可能です。
当例では、以下のような環境を例に MaridaDB へのリクエストをバックエンドサーバーへ転送します。
-----------+---------------------------+----- | | |10.0.0.31 | +----------+-----------+ | | [ www.srv.world ] | | | Nginx | | +----------------------+ | | ------------+--------------------------+----------- | | |10.0.0.51 |10.0.0.52 +-----------+----------+ +-----------+----------+ | [ node01.srv.world ] | | [ node02.srv.world ] | | Mariadb#1 | | Mariadb#2 | +----------------------+ +----------------------+ |
[1] | Nginx の設定です。 |
root@www:~ #
vi /usr/local/etc/nginx/nginx.conf # 15行目 : 追記 load_module /usr/local/libexec/nginx/ngx_stream_module.so; # 最終行に追記 # [weight=*] で重み付け (weight=2 の場合 指定無サーバーと 2:1 の割合でバランシング) stream { upstream mariadb-backend { server 10.0.0.51:3306 weight=2; server 10.0.0.52:3306; } server { listen 3306; proxy_pass mariadb-backend; } }root@www:~ # service nginx reload
|
[2] | 任意のクライアントコンピューターからフロントエンドの Nginx サーバーへ Mariadb アクセスして動作確認します。 |
freebsd@client:~ $ mysql -u serverworld -ppassword -h www.srv.world -e "show variables like 'hostname';" +---------------+------------------+ | Variable_name | Value | +---------------+------------------+ | hostname | node01.srv.world | +---------------+------------------+ freebsd@client:~ $ mysql -u serverworld -ppassword -h www.srv.world -e "show variables like 'hostname';" +---------------+------------------+ | Variable_name | Value | +---------------+------------------+ | hostname | node01.srv.world | +---------------+------------------+ freebsd@client:~ $ mysql -u serverworld -ppassword -h www.srv.world -e "show variables like 'hostname';" +---------------+------------------+ | Variable_name | Value | +---------------+------------------+ | hostname | node02.srv.world | +---------------+------------------+ freebsd@client:~ $ mysql -u serverworld -ppassword -h www.srv.world -e "show variables like 'hostname';" +---------------+------------------+ | Variable_name | Value | +---------------+------------------+ | hostname | node01.srv.world | +---------------+------------------+ |
Sponsored Link |