Nginx से दूसरे सर्वर से कनेक्शन कैसे पास करें (रिवर्स प्रॉक्सी?)


1

मेरे पास एक ओपनफ़ायर डेमॉन है http://192.168.2.33:9090(कोई एसएसएल नहीं) और मैं इसे प्रॉक्सी के माध्यम से होस्ट नाम से बाँधना चाहता https://openfire.example.comहूं (मेरे पास इसके लिए एसएसएल प्रमाणपत्र है)।

यह मैं कैसे करूंगा? जब मैं SSL स्ट्रिंग को nginx config में जोड़ता हूं तो यह SSL त्रुटि दिखाता है। यहाँ ssl समर्थन के बिना मेरा वर्तमान विन्यास है:

map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

server {
        listen 80;
        server_name openfire.example.com;

    location / {
            proxy_pass http://192.168.2.33:9090;
            proxy_redirect http://192.168.2.33:9090/ $scheme://$host/;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
            proxy_read_timeout 20d;
            auth_basic "Private Property";
            auth_basic_user_file /etc/nginx/.htpasswd;
        }
}

यह कॉन्फ़िगरेशन 502 खराब गेटवे को त्रुटि पैदा करता है।

एक मामूली परिवर्तन (जैसा कि नीचे देखा गया है) ERR_TOO_MANY_REDIRECTS की ओर जाता है।

server {
    listen *:80;
    listen *:443;
    server_name openfire.example.com;

    ssl                     on;
        ssl_protocols           SSLv3 TLSv1;
        ssl_certificate     /etc/letsencrypt/live/openfire.example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/openfire.example.com/privkey.pem;

    location / {
        rewrite ^(.*)$ https://openfire.example.com$1 permanent;
        proxy_pass http://192.168.2.33:9090;
        proxy_redirect http://192.168.2.33:9090/ $scheme://$host/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_read_timeout 20d;
    }
}   

किस प्रकार की त्रुटि दिखाई जा रही है?
सेठ

@ सेठ ERR_TOO_MANY_REDIRECTS
बोगदान लशकोव

उस त्रुटि के लिए कॉन्फ़िगर करें: pastebin.com/crYLnx8N
बोगदान लैशकोव

उस कॉन्फ़िगरेशन में रीडायरेक्ट क्यों शामिल है? पुनर्निर्देशन के पीछे क्या विचार है? आपकी proxy_read_timeoutथोड़ी ज्यादती लगती है। 502 त्रुटि के लिए, क्या आपने ओपनफायर सर्वर के लॉग की जांच की?
सेठ

जवाबों:


0

@ सेठ को धन्यवाद! मुझे निश्चित रूप से एक समाधान मिल गया है।

  1. आपके पास अपने ओपनफ़ायर सर्वर पर वेब-कंसोल में एक SSL प्रमाणपत्र होना चाहिए।
  2. इस प्रमाण पत्र को निम्नलिखित नगीन्क्स conf में सेट किया जाना चाहिए:

    server {
        listen *:80;
        server_name openfire.example.com;
        proxy_set_header Host openfire.example.com;
        location / {
        rewrite ^(.*)$ https://openfire.example.com$1 permanent;
        }
    }
    
    server {
        listen *:443;
        server_name openfire.example.com;
        proxy_set_header Host openfire.example.com;
    
        #The port used for secured Admin Console access:
        set $openfire_port 9091;
        #IP address for machine running openfire server:
        set $openfire_ip 192.168.2.33;
        ssl     on;
        ssl_protocols     SSLv3 TLSv1;
        ssl_certificate     /etc/letsencrypt/live/openfire.example.com/fullchain.pem;
        ssl_certificate_key     /etc/letsencrypt/live/openfire.example.com/privkey.pem;
    
    location / {
        proxy_pass https://$openfire_ip:$openfire_port;
        }
    }
    
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.