Nginx : भार का संतुलन2023/11/17 |
Nginx को लोड बैलेंसिंग सर्वर के रूप में कॉन्फ़िगर करें।
यह उदाहरण निम्न प्रकार से पर्यावरण पर आधारित है। -----------+---------------------------+----- | | |10.0.0.30 | +----------+-----------+ | | [ www.srv.world ] | | | Nginx | | +----------------------+ | | ------------+--------------------------+--------------------------+------------ | | | |10.0.0.51 |10.0.0.52 |10.0.0.53 +-----------+----------+ +-----------+----------+ +-----------+----------+ | [ node01.srv.world ] | | [ node02.srv.world ] | | [ node03.srv.world ] | | Web Server#1 | | Web Server#2 | | Web Server#3 | +----------------------+ +----------------------+ +----------------------+ |
[1] | |
[2] | Nginx कॉन्फ़िगर करें। |
[root@www ~]#
vi /etc/nginx/nginx.conf # [http] अनुभाग में जोड़ें # [backup] का अर्थ है कि यह सर्वर तभी संतुलित होता है जब अन्य सर्वर डाउन होते हैं # [weight=*] का अर्थ है वजन संतुलित करना http { upstream backends { server node01.srv.world:80 weight=2; server node02.srv.world:80; server node03.srv.world:80 backup; } log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # HTTP के लिए # [server] अनुभाग में इस प्रकार परिवर्तन करें server { listen 80 default_server; listen [::]:80 default_server; server_name www.srv.world; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; location / { proxy_pass http://backends; } } # नया निर्माण # प्रमाणपत्रों को अपने प्रमाणपत्रों से बदलें server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name www.srv.world; ssl_certificate "/etc/letsencrypt/live/www.srv.world/fullchain.pem"; ssl_certificate_key "/etc/letsencrypt/live/www.srv.world/privkey.pem"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers PROFILE=SYSTEM; ssl_prefer_server_ciphers on; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; location / { proxy_pass http://backends; } } systemctl reload nginx |
[3] | यदि SELinux सक्षम है, तो बूलियन सेटिंग बदलें। |
[root@www ~]# setsebool -P httpd_can_network_connect on
|
[4] | X-Forwarded-For हेडर लॉग करने के लिए बैकएंड Nginx सर्वर को कॉन्फ़िगर करें। |
[root@node01 ~]#
vi /etc/nginx/nginx.conf # [http] अनुभाग में [log_format] सेटिंग्स सुनिश्चित करें # यदि सेट है तो ठीक है [http_x_forwarded_for] http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # [server] अनुभाग में जोड़ें # [set_real_ip_from] के लिए अपना स्थानीय नेटवर्क निर्दिष्ट करें
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name node01.srv.world;
root /usr/share/nginx/html;
set_real_ip_from 10.0.0.0/24;
real_ip_header X-Forwarded-For;
[root@node01 ~]# systemctl reload nginx |
[5] | सत्यापित करें कि यह किसी भी क्लाइंट कंप्यूटर से फ्रंटएंड Nginx सर्वर तक पहुंचने के लिए ठीक काम करता है। |
Sponsored Link |