CentOS Stream 9 Nginx での Stream module の設定方法
環境
CentOS Stream 9
概要
nginx 10.0.0.40 test.com
Mariadb#1 10.0.0.41 node01.test.com
Mariadb#2 10.0.0.42 node02.test.com
操作方法
1.nginx-mod-streamをインストールします
# dnf -y install nginx-mod-stream
2.設定ファイルを編集します
# vi /etc/nginx/nginx.conf
# 最終行に追記
# [weight=*] でweight=2 の場合 指定無サーバーと 2:1 の割合でバランシング
stream { upstream mariadb-backend { server 10.0.0.41:3306 weight=2; server 10.0.0.42:3306; } server { listen 3306; proxy_pass mariadb-backend; } }
3.nginxを再起動します
# systemctl reload nginx
4.SELinux を有効にしている場合は、ポリシーを変更します
# setsebool -P httpd_can_network_connect on
# setsebool -P httpd_can_network_connect_db on
# vi nginx-stream.te
# 以下の内容で新規作成 module nginx-stream 1.0; require { type mysqld_port_t; type httpd_t; class tcp_socket name_bind; } #============= httpd_t ============== allow httpd_t mysqld_port_t:tcp_socket name_bind;
モジュールを確認します。
# checkmodule -m -M -o nginx-stream.mod nginx-stream.te # semodule_package --outfile nginx-stream.pp --module nginx-stream.mod # semodule -i nginx-stream.pps
3. 任意のクライアントコンピューターからフロントエンドの Nginx サーバーへ Mariadb アクセスして動作確認します。
$ mysql -u serverworld -ppassword -h test.com -e "show variables like 'hostname';"