Nginx থেকে অন্য সার্ভারে সংযোগটি পাস করতে হবে (বিপরীত প্রক্সি?)


1

আমি একটি আছে Openfire ডেমন চলমান http://192.168.2.33:9090 (কোন এসএসএল) এবং আমি হোস্ট নামের প্রক্সি এর মাধ্যমে এটি বাঁধতে চাই https://openfire.example.com (আমার জন্য SSL শংসাপত্র আছে)।

আমি কিভাবে এটা করব? যখন আমি nginx কনফিগারেশনে 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;
    }
}   

কি ধরণের ত্রুটি দেখানো হচ্ছে?
Seth

@ সেথ ERR_TOO_MANY_REDIRECTS
Bogdan Lashkov

যে ত্রুটি জন্য কনফিগ: pastebin.com/crYLnx8N
Bogdan Lashkov

কেন যে কনফিগারেশন একটি পুনঃনির্দেশ অন্তর্ভুক্ত করা হয়? রিটার্ন পিছনে ধারণা কি? তোমার proxy_read_timeout একটু বেশি মনে হচ্ছে। ত্রুটি 502 হিসাবে, আপনি ওপেনফায়ার সার্ভারের লগ চেক করেছেন?
Seth

উত্তর:


0

ধন্যবাদ @ শেঠ! আমি স্পষ্টভাবে একটি সমাধান খুঁজে পাওয়া যায় নি।

  1. আপনার ওপেনফায়ার সার্ভারে আপনার ওয়েব-কনসোলে একটি SSL শংসাপত্র সেট থাকা উচিত।
  2. এই শংসাপত্রটি নিম্নলিখিত nginx 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;
        }
    }
    
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.