একই আইপিতে এনগিনেক্স বিভিন্ন ডোমেন


127

আমি nginx ব্যবহার করে একই সার্ভারে 2 টি ভিন্ন ডোমেন হোস্ট করতে চাই। আমি এই হোস্টের উভয় ডোমেইন @ সম্পত্তি মাধ্যমে পুনঃনির্দেশিত করেছি। যদিও আমি 2 টি পৃথক সার্ভার ব্লক কনফিগার করেছি, যখনই আমি দ্বিতীয় ডোমেন অ্যাক্সেস করার চেষ্টা করি তবে এটি প্রথমটিতে পুনঃনির্দেশ করে।

এখানে আমার কনফিগারেশন।

server {
    listen      www.domain1.com:80;
    access_log  /var/log/nginx/host.domain1.access.log  main;
    root /var/www/domain1;
    server_name www.domain1.com;

    location ~ \.php$ {
        # Security: must set cgi.fixpathinfo to 0 in php.ini!
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME         $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include /etc/nginx/fastcgi_params;
    }
}

server {
    listen       www.domain2.com:80;
    access_log  /var/log/nginx/host.domain2.access.log  main;
    root /var/www/domain2;
    server_name www.domain2.com;

    location ~ \.php$ {
        # Security: must set cgi.fixpathinfo to 0 in php.ini!
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME         $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include /etc/nginx/fastcgi_params;
    }
}

আমি এটা কিভাবে ঠিক করবো? ধন্যবাদ।

উত্তর:


163

আপনার "শুনুন" নির্দেশিকা ভুল। এই পৃষ্ঠাটি দেখুন: http://nginx.org/en/docs/http/server_names.html

তাদের উচিত

server {
    listen      80;
    server_name www.domain1.com;
    root /var/www/domain1;
}

server {
    listen       80;
    server_name www.domain2.com;
    root /var/www/domain2;
}

দ্রষ্টব্য, আমি কেবল প্রাসঙ্গিক লাইনগুলি অন্তর্ভুক্ত করেছি। সমস্ত কিছু ঠিক আছে বলে মনে হচ্ছে তবে আমি এটি পরিষ্কার করার জন্য মুছে ফেলেছি। এটি পরীক্ষা করার জন্য আপনি পিএইচপি প্রকৃতপক্ষে পরিবেশন করার আগে প্রথমে প্রতিটি সার্ভার থেকে একটি টেক্সট ফাইল পরিবেশন করার চেষ্টা করতে পারেন। সে কারণেই আমি সেখানে 'রুট' নির্দেশ রেখেছি।


9
এটি আমার জন্য এটি স্থির করে দিয়েছে। সমস্যাটি মনে হচ্ছে যে আমার উভয় server {}ব্লকেই, সেভার_নামের নির্দেশাবলী ছিল ওয়াইল্ডকার্ড: .domain1.comএবং .domain2.com। এগুলিতে server_name www.domain1.com domain1.com;এবং server_name www.domain2.com domain2.com;এখন পরিবর্তনের প্রতিটি সাইটের সঠিক ঠিকানা রয়েছে যখন সেই ঠিকানাগুলি ব্যবহার করা হবে।
স্টিভ এইচএইচএইচ

4
আমি জানি এটি একটি প্রাচীন মন্তব্য ড্রেজিং করছে। তবে আমি ধরে নিই যে এই দুটি সার্ভার ব্লক সাইট-সক্রিয় / পৃথক পৃথক কনফিগারেশন ফাইলগুলিতে থাকতে পারে?
লবার্ন

3
একেবারে, এটি নির্ভর করে যে আপনি কীভাবে আপনার কনফিগারটি গঠন করতে চান। আমি রিয়েল ডোমেন প্রতি একটি ফাইল আছে ঝোঁক। যার প্রত্যেকটিতে একাধিক সার্ভার ব্লক থাকতে পারে।
aychedee

5
আপনি সত্যিই এটি করতে চান না। Www.domain.com বা ডোমেইন ডটকমকে বেছে নিন এবং একে অন্যকে পুনর্নির্দেশ করুন। দুটি ভিন্ন ঠিকানায় একই বিষয়বস্তু থাকা স্প্যামি হিসাবে দেখা হয় এবং আপনার অনুসন্ধানের র‌্যাঙ্কিংকে ভারী ক্ষতি করতে পারে।
আঁচেদি

4
আপনি কেবল ব্যবহার করতে পারেন .domain.com। এটা একটা বিশেষ nginx ওয়াইল্ডকার্ড যে ম্যাচ এর domain.comএবং *.domain.com। দেখুন: nginx.org/en/docs/http/server_names.html
aychedee
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.