सवाल विभिन्न बंदरगाह पर एकाधिक Nginx उदाहरण कैसे चलाएं


मैं अलग-अलग बंदरगाहों पर अपने सर्वर पर कई Nginx उदाहरण चलाना चाहता हूं (उदाहरण के लिए एक उपयोगकर्ता पोर्ट 2345 पर Nginx चलाता है, और पोर्ट 2346 पर कोई अन्य उपयोगकर्ता)। अब तक, मैं अपने निर्दिष्ट बंदरगाहों पर सर्वर को संकलित और चलाने में सफल रहा हूं। हालांकि, मैं एक अजीब मुद्दे में चल रहा हूं: यदि मैं domain1.com:2345 या domain2.com on346 पर जाता हूं तो मुझे सही (200) प्रतिक्रिया मिलती है लेकिन यदि मैं domain1.com या domain2.com पर जाता हूं (पोर्ट निर्दिष्ट किए बिना) I बिल्कुल कोई प्रतिक्रिया नहीं मिलता है।

इसे स्थापित करने के तरीके को समझने में कोई मदद / सुराग अत्यधिक सराहना की जाएगी।


5
2018-03-03 11:23


मूल


क्या यह अलग-अलग उपयोगकर्ताओं की आवश्यकता है? क्या आप ऐसा करने के लिए वर्चुअल होस्ट का उपयोग नहीं कर सकते हैं और इसका उपयोग कर सकते हैं Listen विभिन्न बंदरगाहों में nginx सुनने के लिए निर्देश? समझाओ कि आप क्या हासिल करने की कोशिश कर रहे हैं। - coredump


जवाब:


ठीक है, मुझे एक समाधान मिला।

मैंने जो किया वह पोर्ट 80 के रूप में रूट के रूप में 'मास्टर' सर्वर चलाया गया था। वहां से मैं सर्वर पर proxy_pass निर्देश के साथ अपने बंदरगाहों पर प्रत्येक सर्वर के लिए सर्वर ब्लॉक जोड़ता हूं।

  server {
    listen      80;
    charset     utf-8;
    server_name domain1.com;
    location / {
        proxy_pass http://domain1.com:2345;
  }
  server {
    listen      80;
    charset     utf-8;
    server_name domain2.com;
    location / {
        proxy_pass http://domain2.com:2346;
  }

शायद एक और अधिक सुरुचिपूर्ण समाधान है लेकिन यह अच्छी तरह से काम करता प्रतीत होता है।


9
2018-03-03 14:17





यदि आप पोर्ट निर्दिष्ट नहीं करते हैं तो Webbrowsers स्वचालित रूप से पोर्ट 80 का चयन करते हैं। आपकी व्याख्या से ऐसा लगता है कि दो उदाहरणों में से कोई भी पोर्ट 80 पर नहीं सुनता है।

आप जो करना चाहते हैं वह बजाय उसी nginx उदाहरण से डोमेन 1.com और domain2.com दोनों की सेवा करना है आभासी मेजबान


3
2018-03-03 12:32



पारितोषिक के लिए धन्यवाद। बंदरगाह 80 जानकारी अच्छी शुरुआत थी ... हालांकि, मैं उपयोगकर्ताओं को अपने खातों पर अपने स्वयं के Nginx उदाहरणों को कॉन्फ़िगर करने की क्षमता देना चाहता था न केवल आभासी मेजबान। - Edvinas


यदि आपके सर्वर के लिए एकाधिक आईपी पते रखना संभव है तो आप पोर्ट 80 पर कई nginx उदाहरण चला सकते हैं क्योंकि आपने अलग-अलग आईपी पते निर्दिष्ट किए हैं listen निर्देश।

एक उदाहरण:

पहले उदाहरण पर:

server {
  listen a.b.c.e:80
  ...
}

दूसरे उदाहरण पर

server {
  listen f.g.h.i:80
  ...
}

हालांकि यदि आपके पास केवल कुछ उपयोगकर्ताओं से अधिक है तो यह दर्द हो जाएगा। इसके अलावा कई सार्वजनिक आईपी पते भी आना मुश्किल हो सकता है।


1
2018-03-03 14:31