2012-04-10 12 views
16

पर nginx सबडोमेन का परीक्षण कैसे करें मैं सर्वर पर कॉन्फ़िगरेशन अपलोड करने से पहले nginx सबडोमेन का परीक्षण करना चाहता हूं। क्या मैं इसे स्थानीयहोस्ट पर परीक्षण कर सकता हूं? मैंस्थानीयहोस्ट

server { 
    listen  80; 
    server_name localhost; 

    location/{ 
     proxy_pass http://localhost:8080; 
    } 
} 

server { 
    listen  80; 
    server_name sub.localhost; 

    location/{ 
     proxy_pass http://localhost:8080/sub; 
    } 
} 

और यह काम नहीं करता है। शॉलल्ड मैं इसे काम करने के लिए अपनी मेजबान फाइल बदलता हूं? साथ ही, सर्वर पर साइट अपलोड करने के बाद क्या मुझे DNS रिकॉर्ड्स बदलना चाहिए और sub.mydomain.com जोड़ना चाहिए?

उत्तर

15

हां, अपनी मेजबान फ़ाइल में 'sub.localhost 127.0.0.1' जोड़ें। उस सब को किसी भी तरह हल किया जाना है। यह काम करना चाहिए।

फिर एक बार जब आप नेट पर जाने के लिए तैयार हो जाते हैं, तो हाँ, सबडोमेन उप के लिए एक या cname रिकॉर्ड जोड़ें।

जब मैं proxy_pass का उपयोग करता हूं तो मैं nginx से proxy.conf भी शामिल करता हूं। http://wiki.nginx.org/HttpProxyModule

+0

हाँ, धन्यवाद, यह काम करता है। – madhead

5

अपने स्वयं के डोमेन नाम के साथ अपने सार्वजनिक वेब सर्वर के लिए, तुम सिर्फ अपने DNS विन्यास में एक CNAME रिकॉर्ड का उपयोग कर एक विहित नाम जोड़ने की जरूरत:

CNAME * example.com. 

इसके पूर्ण होते ही, सेट अपने nginx

की स्थापना/hosts फाइल और प्रत्येक उप डोमेन मैन्युअल रूप से जोड़ने
server_name *.example.com example.com; 

अपने स्थानीय सेटअप में आप nginx के लिए एक ही विन्यास रख सकते लेकिन जब तक आप एक स्थानीय डीएनएस सेटअप है, जिसे आप संपादित करना अपने/आदि होगा। वाइल्डकार्ड/etc/hosts फ़ाइल में काम नहीं करते हैं।

127.0.0.1 abc.example.com def.example.com ghi.example.com 

आमतौर पर इसका उपयोग करने की अनुशंसा की जाती है। आपके स्थानीय डोमेन के लिए नामस्थान के रूप में।

1

लिनक्स आधारित ऑपरेटिंग सिस्टम में बस के रूप में sudo/etc/hosts फ़ाइल को संपादित और 127.0.0.1 *.localhost को 127.0.0.1 localhost बदलने के लिए।

तो /etc/nginx/sites-enabled/<environment>/<your_project_name>server_name<subdomain>.localhost के रूप में संपादित करें।

nginx सेवा को पुनरारंभ करें।

$ sudo service nginx restart 

और फिर यूआरएल बार पर http://<subdomain>.localhost आज़माएं।

यह मेरे लिए काम करता है।

अद्यतन

मेरी राय में, एक बेहतर समाधान के लिए एक आभासी सर्वर है कि केवल प्रतिक्रिया करता है, तो उप डोमेन /etc/nginx/sites-enabled/development/default में, मौजूद नहीं है पैदा कर रही है, डिफ़ॉल्ट सर्वर के रूप में (याद रखें कि आप डिफ़ॉल्ट के रूप में केवल एक ही सर्वर परिभाषित कर सकते हैं)।

server { 
    listen 80 default_server; 
    root /var/www/html/errors; 
    server_name *._; 

    location/{ 
    index 404.html; 
    } 

} 

सुनिश्चित करें कि में nginx.conf (आम तौर पर /etc/nginx/nginx.conf पर) इस आभासी सर्वर काम करने के लिए include /etc/nginx/sites-enabled/**/*; होते हैं। यदि नहीं, तो इसे रखें और फिर $ sudo service nginx restart चलाएं।

इस मामले में *.localhost/etc/hosts में आवश्यक नहीं है, लेकिन केवल localhost

संबंधित मुद्दे