nginx দুটি সাইটের কনফিগারেশন বিরোধ


1

আমার একটি ডোমেনের জন্য আমি এনগিনেক্স কনফিগার করেছি। এটি ওয়াইল্ডফ্লাই অ্যাপ্লিকেশন সার্ভারের সম্মুখভাগ হিসাবে কাজ করে। একদিন আমি একই মেশিনে বিটা পরীক্ষার পরিবেশ কনফিগার করার সিদ্ধান্ত নিয়েছি। তাই আমি কনফিগারেশনে অন্য একটি সাবডোমেন যুক্ত করেছি। পুনরায় চালু করার পরে এনজিনেক্স প্রথম অ্যাপ্লিকেশনটি পরিবেশন করতে থামল। আমার কনফিগারেশন ফাইলগুলি হ'ল:

প্রধান সাবডোমেন:

server {
    listen 80;
    server_name sub.example.com;
    return 301 https://$host$request_uri;
}

server {

    listen 443;
    server_name sub.example.com;

    ssl_certificate           /etc/nginx/ssl/bundle.crt;
    ssl_certificate_key       /etc/nginx/ssl/sub.example.com.key;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log            /var/log/nginx/sub.example.com.access.log;

    location / {

      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 $scheme;

      proxy_pass          http://localhost:8080;
      proxy_read_timeout  90;
    }
}

সাবডোমেন পরীক্ষা করুন:

server {
    listen 443;
    server_name sub-test.example.com;
    return 301 http://$host$request_uri;
}

server {

    listen 80;
    server_name sub-test.example.com;


    access_log            /var/log/nginx/sub-test.example.com.access.log;

    location / {

      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 $scheme;

      proxy_pass          http://localhost:8080;
      proxy_read_timeout  90;

    }
}

আমাকে যুক্ত করতে হবে যে উপরের প্রতিটি কনফিগারেশন একা থাকাকালীন প্রত্যাশা অনুযায়ী কাজ করে। তবে একসাথে তারা একে অপরকে পছন্দ করে না। তাদের মধ্যে প্রথমটির জন্য অনুরোধ করা HTTP স্থিতি পায় না।

অবশ্যই, সমস্যাটি আমার ওয়াইল্ডফ্লাই সার্ভারে থাকতে পারে। এটি ভার্চুয়াল হোস্টগুলি পরিচালনা করার জন্য কনফিগার করা হয়েছে এবং আমি ঠিক জানি না এটি ঠিক আছে। কিন্তু যখন উভয় অ্যাপ্লিকেশন চালিত হয় এবং তাদের মধ্যে কেবল একটিই এনজিনেক্স দ্বারা প্রক্সি করা হয়, এটি দুর্দান্ত কাজ করে।

সাহায্যের জন্য ধন্যবাদ.


1
আপনার একাধিক নাম ভিত্তিক https সার্ভার থাকতে পারে না
রোমিও নিনভ

ওহ, এবং এটি? খুশী হলাম। আমাকে বোকা বানাও. :)
প্যাট্রিক ডব্রোলসকি

এবং আপনি কি হোস্টগুলি সাব-টেস্ট.এক্স্পেল.কম এবং সাব.সেক্সেল.কমের জন্য রেজোলভ যুক্ত করেছেন?
রোমিও নিনভ

1
ঠিক আছে, দ্বিতীয় সাবডোমেন থেকে https সার্ভারটি সরানো আমার পক্ষে কাজ করেছে। অনেক ধন্যবাদ!
প্যাট্রিক ডব্রোলসকি

কিছু পয়েন্ট অর্জন করতে দয়া করে আমার প্রশ্নের উত্তর দিন :)
প্যাট্রিক ডব্রোলসকি

উত্তর:


1

প্যাট্রিক, দুর্ভাগ্যক্রমে আপনি একাধিক নাম ভিত্তিক এইচটিটিপিএস সার্ভার সেট করতে পারবেন না। ব্যাখ্যাগুলি দীর্ঘ, তবে আপনি এখানে কিছু অনির্দিষ্ট তথ্য এবং উদাহরণগুলির জন্য পরীক্ষা করতে পারেন (অ্যাপাচি ভিত্তিক, এনজিনেক্স সম্পর্কে কোনও ধারণা নেই)


1
অনেক ধন্যবাদ. আমি এটি সম্পর্কে শুনেছি, কিন্তু ভুলে গেছে। এবং আমি কেবল প্রোগ্রামার হচ্ছি প্রতিদিনের সার্ভার ম্যানেজার নয় :)
প্যাট্রিক ডব্রোওলস্কি

0

আপনি একাধিক https সাইট ব্যবহার করতে পারেন।

প্রযুক্তিটিকে বলা হয় এসএনআই, বা সার্ভারের নাম ইঙ্গিত। উল্লেখ

সার্ভারের কনফিগারেশনের বাইরে এসএসএল অংশটি সরিয়ে নিয়ে আপনি শংসাপত্রগুলি কনফিগার করার জন্য ওভারহেডও হ্রাস করেন। আমি আমার বিপরীত প্রক্সিগুলিতে নিম্নলিখিত কাঠামোটি ব্যবহার করি:

sites.d/ | -ssl.conf | -vhost1.conf | -vhost2.conf

ssl.conf এর পরে রয়েছে:

ssl_certificate /etc/ssl/certs/ssl.crt; ssl_certificate_key /etc/ssl/certs/server.key;

অন্য বিকল্প হ'ল বিভিন্ন সাধারণ নাম সহ পৃথক শংসাপত্র ব্যবহার।


আসলে আমার একটি সার্ভারে দুটি সুরক্ষিত সাইট থাকার দরকার নেই। আমার কনফিগারেশনে আমি এটি কেবল অসুরক্ষিত অ্যাপ্লিকেশনটিতে পুনর্নির্দেশ করার জন্য করেছি। হয়তো ভবিষ্যতে. তবে তার জন্য ধন্যবাদ।
প্যাট্রিক ডব্রোলসকি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.