Nginx : Stream मॉड्यूल का उपयोग करें2023/11/17 |
Stream मॉड्यूल का उपयोग करने के लिए Nginx को कॉन्फ़िगर करें।
टीसीपी, यूडीपी (1.9.13 या बाद का संस्करण), यूनिक्स-डोमेन सॉकेट अनुरोधों को प्रॉक्सी करना संभव है।
यह उदाहरण पर्यावरण पर आधारित है जैसे बैकएंड सर्वर के लिए प्रॉक्सी MariaDB अनुरोधों का अनुसरण करता है।
-----------+---------------------------+----- | | |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 ~]#
dnf -y install nginx-mod-stream
[root@www ~]#
vi /etc/nginx/nginx.conf # अंत में जोड़ें # [weight=*] का अर्थ है वजन संतुलित करना
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 ~]# systemctl reload nginx |
[2] | यदि SELinux सक्षम है, तो नीति बदलें। |
[root@www ~]# setsebool -P httpd_can_network_connect on [root@www ~]# setsebool -P httpd_can_network_connect_db on
[root@www ~]#
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 [root@www ~]# semodule_package --outfile nginx-stream.pp --module nginx-stream.mod [root@www ~]# semodule -i nginx-stream.pp |
[3] | सत्यापित करें कि यह किसी भी क्लाइंट कंप्यूटर से फ्रंटएंड Nginx सर्वर तक पहुंचने के लिए ठीक काम करता है। |
[fedora@client ~]$ mysql -u serverworld -ppassword -h www.srv.world -e "show variables like 'hostname';" +---------------+------------------+ | Variable_name | Value | +---------------+------------------+ | hostname | node01.srv.world | +---------------+------------------+ [fedora@client ~]$ mysql -u serverworld -ppassword -h www.srv.world -e "show variables like 'hostname';" +---------------+------------------+ | Variable_name | Value | +---------------+------------------+ | hostname | node01.srv.world | +---------------+------------------+ [fedora@client ~]$ mysql -u serverworld -ppassword -h www.srv.world -e "show variables like 'hostname';" +---------------+------------------+ | Variable_name | Value | +---------------+------------------+ | hostname | node02.srv.world | +---------------+------------------+ [fedora@client ~]$ mysql -u serverworld -ppassword -h www.srv.world -e "show variables like 'hostname';" +---------------+------------------+ | Variable_name | Value | +---------------+------------------+ | hostname | node01.srv.world | +---------------+------------------+ |
Sponsored Link |