প্রক্সি এইচটিটিপিএস এনজিআইএনএক্স সহ একটি এইচটিটিপি ব্যাকএন্ডে অনুরোধ করে


30

আমি এনজিএনএক্সকে আমার বাহ্যিক দৃশ্যমান ওয়েবসারভার হিসাবে কনফিগার করেছি যা এইচটিটিপি-র উপর একটি ব্যাকএন্ডে কথা বলে।

আমি যে পরিস্থিতিটি অর্জন করতে চাই তা হ'ল:

  1. ক্লায়েন্টটি এনজিএনএক্সে এইচটিটিপি অনুরোধ করে যা একই ইউআরএলটিতে পুনঃনির্দেশ করা হয় তবে এইচটিটিপিএসের ওপরে
  2. nginx প্রক্সিগুলি HTTP এর মাধ্যমে ব্যাকএন্ডে অনুরোধ করে
  3. এনজিএনএক্স এইচটিটিপি-র মাধ্যমে ব্যাকেন্ড থেকে প্রতিক্রিয়া গ্রহণ করে।
  4. এনজিনেক্স এইচটিটিপিএস-এর মাধ্যমে ক্লায়েন্টের কাছে ফিরে যায়

আমার বর্তমান কনফিগারেশন (যেখানে ব্যাকএন্ড সঠিকভাবে কনফিগার করা আছে) হ'ল:

সার্ভার
        80 শুনুন;
        সার্ভার_নাম লোকালহোস্ট;

        অবস্থান ~। * {
            প্রক্সি_পাস http: // ব্যাকএন্ড;
            proxy_redirect http: // ব্যাকেন্ড https: // $ হোস্ট;
            প্রক্সি_সেট_হেডার হোস্ট $ হোস্ট;
            }
        }

আমার সমস্যা হ'ল ক্লায়েন্টের প্রতিক্রিয়া হ'ল (পদক্ষেপ 4) HTTP- র মাধ্যমে নয় HTTPS প্রেরণ। কোন ধারনা?

উত্তর:


6

আপনি যে ধরণের প্রক্সি সেট আপ করার চেষ্টা করছেন তাকে বিপরীত প্রক্সি বলে। বিপরীত প্রক্সি এনজিনেক্সের জন্য দ্রুত অনুসন্ধান আমাকে এই পৃষ্ঠাটি পেয়েছে:

http://intranation.com/entries/2008/09/using-nginx-reverse-proxy/

এক্স-ফরওয়ার্ড-ফর শিরোনামের মতো কিছু দরকারী বৈশিষ্ট্য যুক্ত করার পাশাপাশি (যা প্রকৃত উত্স আইপিতে আপনার অ্যাপ্লিকেশনটির দৃশ্যমানতা দেবে), এটি বিশেষভাবে করে:

proxy_redirect off

শুভকামনা! :)


1
আপনার প্রতিক্রিয়া জন্য ধন্যবাদ - লিঙ্কটি সত্যিই খুব সহায়ক ছিল। আমি মনে করি যে আমি আমার সমস্যাটি বিভক্ত করে সমাধান করেছি - 443 বন্দরে HTTPS পোর্টে সমস্ত HTTP অনুরোধের জন্য 443 পোর্টে পুনর্নির্দেশকে আমি কনফিগার করেছি। তারপরে আমি 443-র জন্য কনফিগারেশনে একটি নতুন সার্ভার কনফিগার করেছি I আমি আগে এই সমস্ত করার চেষ্টা করছিলাম একই স্থানে.
মাইক

35

আমি নিম্নলিখিত কনফিগারেশন ব্যবহার করছি

server {
    listen xxx.xxx.xxx.xxx:80;
    server_name www.example.net;

    rewrite ^(.*) https://$server_name$1 permanent;
}

server {
    listen xxx.xxx.xxx.xxx:443;
    server_name www.example.net;

    root   /vhosts/www.example.net;

    ssl                  on;
    ssl_certificate      /etc/pki/nginx/www.example.net.crt;
    ssl_certificate_key  /etc/pki/nginx/www.example.net.key;

    ssl_prefer_server_ciphers on;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;

    # Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
    ssl_dhparam /etc/pki/nginx/dh2048.pem;

    # intermediate configuration. tweak to your needs.
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }
}

+1 যোগ করা proxy_set_header X-Forwarded-Proto https;আমার জন্য কৌশলটি করেছে।
ফয়সাল ফিরোজ

-3
server {

    listen 80;
    server_name www.example.net example.net;

   rewrite ^/(.*)$ https://$host$request_uri? permanent; 
}

server {
  listen 443;
  server_name www.example.net example.net;
  .....................
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.