नगनेक्स के साथ एक बाहरी मेजबान के लिए एक उपपथ को पुनर्निर्देशित करें


14

मुझे नगीनेक्स में एक बहुत ही सरल नक्शा बनाने की जरूरत है जो एक सबपथ को एक अन्य सर्वर पर पुनर्निर्देशित करता है जो एक ही सबनेट में स्थित है।

  • नेगनेक्स सर्वर: 192.168.0.2
  • टॉमकैट सर्वर: 192.168.0.3:8443

मैंने इसे सर्वर सेक्शन में डालने की कोशिश की

    location /tomcatapi/ {
        rewrite /tomcatapi/(.*) $1 break;
        proxy_pass http://192.168.0.3:8443;
    }

लेकिन मैं सभी तक पहुँचने के लिए http://www.myservice.com/tomcatapi/ एक 500 त्रुटि पृष्ठ है और nginx लॉग फ़ाइल में मेरे पास यह त्रुटि है:

    the rewritten URI has a zero length

मैं इस उलझन में क्या याद कर रहा हूँ?

जवाबों:


13

आइए अपनी पुनर्लेखन पंक्ति देखें:

rewrite /tomcatapi/(.*) $1 break;

आप कोष्ठक (यानी सब कुछ के बाद /tomcatapi/) में बिट ले रहे हैं , जो $1आपके पुन: लिखे गए यूआरआई की एकमात्र सामग्री के रूप में सौंपा गया है और इसका उपयोग कर रहा है।

आपके उदाहरण में, के बाद कुछ भी नहीं है /tomcatapi/, इसलिए फिर से लिखना खाली हो जाता है, और यह वही है जो नग्नेक्स के बारे में विलाप कर रहा है।

यदि आप फिर से लिखना नियम को बदलते हैं

rewrite /tomcatapi/(.*) /$1 break;

तो आप हमेशा कम से कम /फिर से लिखना उत्पादन में समाप्त करेंगे ।


आपके उत्तर के लिए धन्यवाद, वैसे भी मैंने "/" जोड़ दिया है, लेकिन अब url एक्सेस करने से ब्राउज़र लोडिंग स्थिति में अटक जाता है और लॉग फ़ाइल में मुझे अब एक अलग त्रुटि दिखाई देती है: अपस्ट्रीम से प्रतिक्रिया हेडर पढ़ते समय अपस्ट्रीम ने कोई वैध HTTP / 1.0 हेडर नहीं भेजा।
carlo.polisini

आपके टॉमकैट सर्वर पर लॉग क्या कहते हैं?
फ्लॉप

मुझे त्रुटि मिली, गलती यह थी कि ऐप केवल https पर उपलब्ध था और http नहीं! तो सिंटैक्स आपके सुधार के बाद सही था, बस http के साथ इसे काम में लाने के लिए http प्रतिस्थापित किया गया।
carlo.polisini
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.