nginx "এলোমেলোভাবে" ভুল সার্ভার পরিবেশন করে


0

আমার বেশ কয়েকটি সার্ভার সহ একটি এনগিনেক্স সার্ভার রয়েছে, মূলত কনফিগারেশন ফাইলটি দেখতে এই জাতীয়:

http {
    server {
        listen              [::]:80;
        listen              80;
        server_name         DOMAIN1.com www.DOMAIN1.com;

        location ~ \.php$ {
            // ...
            fastcgi_pass            unix:/run/php/DOMAIN1-php7.3-fpm.sock;
        }

        listen [::]:443 ssl http2 ipv6only=on; 
        listen 443 ssl http2; 
        ssl_certificate /etc/letsencrypt/live/DOMAIN1/fullchain.pem; 
        ssl_certificate_key /etc/letsencrypt/live/DOMAIN1/privkey.pem; 
        include /etc/letsencrypt/options-ssl-nginx.conf; 
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; 
    }

    server {
        listen              [::]:80;
        listen              80;
        server_name         DOMAIN2.com www.DOMAIN2.com;

        location ~ \.php$ {
            // ...
            fastcgi_pass            unix:/run/php/DOMAIN2-php7.3-fpm.sock;
        }

        listen [::]:443 ssl http2 ipv6only=on; 
        listen 443 ssl http2; 
        ssl_certificate /etc/letsencrypt/live/DOMAIN2/fullchain.pem; 
        ssl_certificate_key /etc/letsencrypt/live/DOMAIN2/privkey.pem; 
        include /etc/letsencrypt/options-ssl-nginx.conf; 
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; 
    }
}

আমি যখন DOMAIN1.com খুলি তখন পৃষ্ঠাটি সাধারণত লোড হয়। তবে আমি পৃষ্ঠাটি বেশ কয়েকবার রিফ্রেশ করার পরে অবশেষে আমি DOMAIN2.com এর সামগ্রীগুলি পেয়ে যাব - এটিই DOMAIN2.com এ ঘটে

আমার মোট 10 টি ডোমেন রয়েছে এবং কোনও "ডিফল্ট" ডোমেন নেই; অর্থাত্‍ যখন কোনও ভুল সাইট পরিবেশন করা হয় তখন এটি সর্বদা আলাদা।

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

আমি কীভাবে এটি ডিবাগ / ফিক্স করতে পারি বা কোন কনফিগারেশন আসলে এই আচরণকে ট্রিগার করে?


আপনি কি কোনও একটি ডোমেনকে "ডিফল্ট" হিসাবে সেট করে পরীক্ষা করেছেন? তারপরেও কি আপনি একই সমস্যা পান?
টম্মি

1
এখানে কিছু ভুল নেই। এটি বেসিক লোড ব্যালেন্সিং।
ওভারমাইন্ড করুন

আপনার কনফিগারেশনে আপনার মতো এনজিঙ্ক্স লোড ব্যালেন্সিংটি এইভাবে কাজ করে ... rootবিভিন্ন সাইটের জন্য কোনও সার্ভার ব্লক কনফিগার নেই, তাই আপনার অনুরোধগুলি ভারসাম্যপূর্ণ।
বিজেস্টার

উত্তর:


1

রেকর্ডের জন্য: এটি আসলে দেখা যাচ্ছে যে এটি এনজিনেক্সের সাথে নয় তবে পিএইচপি সহ কোনও সমস্যা নয়।

আমি নিম্নলিখিত লাইনটি এনজিএনএক্সের সমস্ত সার্ভার ব্লকে গেঁথেছি:

add_header X-Source-Server <DOMAIN>-$server_addr;

এখানে আমি স্পষ্ট দেখতে পাচ্ছি, সঠিক এনগিনেক্স সার্ভার ব্লকটি বেছে নেওয়া হয়েছে এবং এটি প্রক্রিয়াটি পিএইচপি এফপিএম পুলে সঠিকভাবে এগিয়ে দেয়। যাইহোক, পিএইচপি পুলটি কোনও কারণে ভুল ডাটাবেস / ডক্রুটটিকে বাছাই করে।

আসলে, এই প্রশ্নটি আমার সমস্যার বর্ণনা দেয়:
কখনও কখনও ভুল পুল থেকে এফপিএম পরিবেশন করে -> সম্ভবত এটি অপচাসা বা অনুরূপ কারণে সৃষ্ট একটি সমস্যা।

এই ব্লগ পোস্টে আমি যে পরামর্শ পেয়েছি তা অনুসরণ করে আমি সমস্যাটি সমাধান করতে পারি ("কেন একাধিক পিএইচপি-এফপিএম মাস্টার ভাল")। প্রতিটি ডোমেনের জন্য একটি নতুন পিএইচপি-এফপিএম মাস্টার তৈরির পরে সবকিছু স্থিতিশীল

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