समान आईपी पर नग्नेक्स अलग डोमेन


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;
}

ध्यान दें, मैंने केवल प्रासंगिक पंक्तियों को शामिल किया है। बाकी सब ठीक लग रहा था, लेकिन मैंने इसे स्पष्टता के लिए हटा दिया। यह परीक्षण करने के लिए कि आप वास्तव में php परोसने से पहले प्रत्येक सर्वर से पहले एक टेक्स्ट फाइल परोसने का प्रयास कर सकते हैं। इसलिए मैंने वहां 'मूल' निर्देश छोड़ दिया।


9
इसने मेरे लिए इसे ठीक कर दिया। समस्या यह है कि मेरे दोनों server {}ब्लॉकों में, गंभीर_नाम निर्देश वाइल्डकार्ड थे: .domain1.comऔर .domain2.com। उन्हें बदलने server_name www.domain1.com domain1.com;और server_name www.domain2.com domain2.com;अब उन पते का उपयोग किए जाने पर प्रदर्शित करने वाली प्रत्येक साइट के लिए सही पृष्ठ है।
स्टीव एचएचएच

4
मैं जानता हूं कि यह एक प्राचीन टिप्पणी है। लेकिन मुझे लगता है कि ये दो सर्वर ब्लॉक साइटों में अलग-अलग कॉन्फ़िगर फ़ाइलों में हो सकते हैं-सक्षम /?
लबराना जू

3
बिल्कुल, यह सिर्फ इस बात पर निर्भर करता है कि आप अपने कॉन्फ़िगरेशन को कैसे व्यवस्थित करना चाहते हैं। मैं असली डोमेन प्रति एक फ़ाइल है। जिनमें से प्रत्येक में कई सर्वर ब्लॉक हो सकते हैं।
अय्याशी

5
आप वास्तव में ऐसा नहीं करना चाहते हैं। या तो www.domain.com या domain.com चुनें और एक दूसरे को रीडायरेक्ट करें। दो अलग-अलग पतों पर समान सामग्री होने से स्पैम के रूप में देखा जाता है और आपकी खोज रैंकिंग को भारी नुकसान पहुंचा सकता है।
aychedee

4
आप भी सिर्फ उपयोग कर सकते हैं .domain.com। यह एक विशेष नग्नेक्स वाइल्डकार्ड है जो मेल खाता है domain.comऔर *.domain.com। देखें: nginx.org/en/docs/http/server_names.html
aychedee
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.