Fedora 41
Sponsored Link

Nginx : रिवर्स प्रॉक्सी2024/11/08

 

Nginx को रिवर्स प्रॉक्सी सर्वर के रूप में कॉन्फ़िगर करें।

उदाहरण के लिए, Nginx को कॉन्फ़िगर करें जिसे HTTP/HTTPS [www.srv.world] तक एक्सेस करता है, उसे [node01.srv.world] पर अग्रेषित किया जाता है।

[1]

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

[2] Nginx कॉन्फ़िगर करें।
# HTTP सेटिंग के लिए

[root@www ~]#
vi /etc/nginx/nginx.conf
# [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://node01.srv.world/;
        }
    }

# HTTPS सेटिंग के लिए

[root@www ~]#
vi /etc/nginx/conf.d/proxy-ssl.conf
# नया निर्माण
# प्रमाणपत्रों को अपने प्रमाणपत्रों से बदलें

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://node01.srv.world/;
    }
}

[root@www ~]#
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 सर्वर तक पहुंचने के लिए ठीक काम करता है।
मिलान सामग्री