Ubuntu 24.04
Sponsored Link

Nginx : भार का संतुलन2024/05/31

 

Nginx को लोड बैलेंसिंग सर्वर के रूप में कॉन्फ़िगर करें।
यह उदाहरण निम्न प्रकार से पर्यावरण पर आधारित है।

-----------+---------------------------+-----
           |                           |
           |10.0.0.31                  |
+----------+-----------+               |
|   [ 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]

SSL प्रमाणपत्र प्राप्त करें, यहां देखें।

[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;
        }

root@www:~#
vi /etc/nginx/sites-available/default
# सामग्री को निम्नानुसार बदलें
# सर्वर नाम या प्रमाणपत्र को अपने नाम से बदलें

server {
        listen      80 default_server;
        listen      [::]:80 default_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;

        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;
        }
}

root@www:~#
systemctl reload nginx

[3] X-Forwarded-For हेडर लॉग करने के लिए बैकएंड Nginx सर्वर को कॉन्फ़िगर करें।
root@node01:~#
vi /etc/nginx/nginx.conf
# [http] अनुभाग में [log_format] सेटिंग जोड़ें

http {
        log_format main '$remote_addr - $remote_user [$time_local] "$request" '
        '$status $body_bytes_sent "$http_referer" '
        '"$http_user_agent" "$http_x_forwarded_for"';

root@node01:~#
vi /etc/nginx/sites-available/default
# [server] अनुभाग में जोड़ें
# [set_real_ip_from] के लिए अपना स्थानीय नेटवर्क निर्दिष्ट करें

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        set_real_ip_from   10.0.0.0/24;
        real_ip_header     X-Forwarded-For;

root@node01:~#
systemctl reload nginx

[4] सत्यापित करें कि यह किसी भी क्लाइंट कंप्यूटर से फ्रंटएंड Nginx सर्वर तक पहुंचने के लिए ठीक काम करता है।
मिलान सामग्री