2015-10-21 7 views
6

मेरे पास एक मास्टर nginx सर्वर आने वाले सर्वर नाम पर निर्णय ले रहा है जहां अनुरोधों को रूट करना है। दो माध्यमिक सर्वरों के लिए यह मास्टर nginx सर्वर भी एसएसएल प्रमाणपत्र और कुंजी धारण कर रहा है। तीसरा सर्वर अपने प्रमाण पत्र और चाबियाँ रख रहा है क्योंकि उन लोगों के लिए लगातार अद्यतन प्रक्रिया होती है।nginx: किसी अन्य सर्वर से आगे एसएसएल कनेक्शन

मेरा प्रश्न अब है कि मैं इस सर्वर के लिए आने वाले सर्वर 3 के सभी अनुरोधों को अग्रेषित करने के लिए मास्टर nginx सर्वर को कैसे कॉन्फ़िगर कर सकता हूं। मैं प्रमाण पत्र और कुंजी को सर्वर 3 से मास्टर सर्वर पर कॉपी नहीं कर सकता क्योंकि वे अक्सर बदलते हैं।

overview servers and http(s) connections

उत्तर

2

यहाँ एक विन्यास है कि काम हो सकता है है। मास्टर के माध्यम से प्रॉक्सी और सर्वर 3 के लिए सब कुछ अग्रेषित करें। एसएसएल बंदरगाह का प्रयोग करें लेकिन एसएसएल बंद करें।

server { 
    listen  443; 
    server_name myserver.mydomain.whatever; 

    ssl   off; 

    access_log  /var/log/nginx/myserver.access.log; 
    error_log  /var/log/nginx/myserver.error.og; 

    keepalive_timeout 60; 

    location/{ 
     set $fixed_destination $http_destination; 
     if ($http_destination ~* ^https(.*)$) 
     { 
      set $fixed_destination http$1; 
     } 

     proxy_set_header  Host $host; 
     proxy_set_header  X-Real-IP $remote_addr; 
     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header  X-Forwarded-Proto $scheme; 
     proxy_set_header Destination $fixed_destination; 
     # Fix the “It appears that your reverse proxy set up is broken" error. 
     # might need to explicity set https://localip:port 
     proxy_pass   $fixed_destination; 
     # force timeout if backend died. 
     proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; 
     proxy_read_timeout 90; 
     proxy_redirect http:// https://; 
    } 
} 
+0

आपकी सहायता के लिए धन्यवाद। मुझे पूरा यकीन नहीं है कि मुझे सब ठीक हो जाए। 'सुनने 80' के लिए सर्वर परिभाषा के साथ मुझे क्या करना चाहिए? मास्टर nginx सर्वर पर 443 पर रीडायरेक्ट करें और फिर अपने कोड उदाहरण का उपयोग करें? आपके उदाहरण में आप निर्दिष्ट करते हैं कि कौन से आईपी आंतरिक रूप से अनुरोध को अग्रेषित किया जाता है? –

+0

मैंने इसे दोनों तरीकों से परीक्षण किया। या तो मुझे nginx लॉग में एक त्रुटि मिलती है '2015/10/22 11:34:21 [त्रुटि] 1822 9 # 0: * 57 9 16 अमान्य यूआरएल उपसर्ग "" क्लाइंट में: xxx.xxx.xxx.xxx, सर्वर: my_server_name , अनुरोध करें: "प्राप्त करें/HTTP/1.1 $' या ब्राउज़र सीधे कहता है कि कोई सुरक्षित कनेक्शन स्थापित नहीं किया जा सकता है और कनेक्ट करने से इनकार कर दिया जाता है। –

+1

ऐसा लगता है कि यह संभव नहीं है। Nginx आगे प्रॉक्सी नहीं करता है। [https और nginx आगे प्रॉक्सी के रूप में] (https://forum.nginx.org/read.php?2,15124,15256#msg-15256)। – wolfhammer

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