HTTP / HTTPS प्रॉक्सी सर्वर के रूप में Nginx का उपयोग कैसे करें? [बन्द है]


16

क्या HTTP / HTTPS प्रॉक्सी के रूप में Nginx का उपयोग करना संभव है?

जवाबों:


14

कुछ परीक्षण के बाद, मैंने निम्नलिखित विन्यास के लिए काम किया है।

server {
  server_name ~^(www\.)?(?<domain>.+)$;
  access_log /var/log/nginx/proxy.access.log main;
  error_log /var/log/nginx/proxy.error.log crit;
  listen 10.255.1.13:8080;
  resolver 8.8.8.8;
  location / {
    proxy_pass http://$domain;
    proxy_redirect off;
    proxy_set_header Host $host;
    # Optional headers 
    # proxy_set_header X-Real-IP $remote_addr;
    # proxy_set_header X-Forwarded-For
    # $proxy_add_x_forwarded_for;
  }
}

यह कॉन्फ़िगरेशन केवल HTTP के लिए काम करता है, HTTPS के लिए नहीं।


4
बहुत बढ़िया! कुछ संकेत। 1: listen ... default_server। 2: server_name ""या server_name _। 2: proxy_pass $scheme://$http_host। सीमाएँ: पोर्ट 80 के साथ अपस्ट्रीम तक पॉक्सिंग; खुद को पुनर्निर्देशित नहीं करता है।
अलेक्जेंडर अजरोव

$ योजना केवल तभी उपयोगी है जब vhost https पर भी सुनता है - लेकिन तब आपके पास मध्यम जोखिम और https प्रमाणपत्र त्रुटियों के साथ लड़ने के लिए है ... दोनों पर विचार करने के लिए बड़े सुरक्षा मुद्दे हैं
anthonysomerset

8

मुझे लगता है कि संक्षिप्त उत्तर नहीं है, यह आगे की भविष्यवाणी के लिए नहीं लिखा गया था

अपडेट करें

ऊपर मेरे बयान को स्पष्ट करने के लिए:

एनजीआईएनएक्स को कभी भी आगे की ओर ध्यान में रखते हुए नहीं लिखा गया था - जबकि इसके दूरस्थ रूप से किसी भी तरह से जेरी को रिग करने के लिए संभव है कि आप क्या करना चाहते हैं, आपको निम्नलिखित सीमाओं को समझना होगा:

  • कैश लगभग न के बराबर मौजूद है (प्रॉक्सी का उपयोग करने के मुख्य कारणों में से एक)
  • पोर्ट 80 ट्रैफ़िक के अलावा किसी भी चीज़ का उपयोग नहीं किया जा सकता (अर्थात इसके माध्यम से cpanel बॉक्स में कोई लॉगिंग नहीं)
  • एसएसएल आधारित यातायात के लिए कोई समर्थन नहीं
  • मानक प्रॉक्सी हेडर और http कैश हेडर के लिए कोई समर्थन नहीं है (मेरी समझ यह है कि ये बस से गुजरते हैं
  • अन्य प्रोटोकॉल के लिए कोई समर्थन नहीं है जो प्रॉक्सी सर्वर - जैसे वीपीएन आदि का समर्थन करते हैं

संभावित अन्य विचार जो इस समय अज्ञात हैं:

  • संभव है कि आपके प्रॉक्सी को ठीक से नियंत्रित अभिगम नियंत्रण / प्रमाणीकरण के लिए कोई वास्तविक क्षमता नहीं है (nginx के पास अभिगम नियंत्रण के विभिन्न तरीकों के लिए समर्थन है, लेकिन यह स्पष्ट नहीं है कि आगे प्रॉक्सी संदर्भ में यह कैसे व्यवहार कर सकता है)
  • मशीन के लिए संभावित सुरक्षा जोखिम जो nginx पर स्थापित है क्योंकि संभव सुरक्षा छेद नहीं हो सकता है क्योंकि इसे चलाने के लिए डिज़ाइन नहीं किया गया था।

Counterexample, देखें: ef.gy/use-nginx-as-a-proxy-server
kkurian

शायद मेरा जवाब स्पष्ट होना चाहिए था कि इसे आगे के लिए तैयार करने के लिए डिज़ाइन नहीं किया गया था - बंदर पैच प्रयास गैर मानक (पोर्ट 80) बंदरगाहों के लिए प्रॉक्सी अनुरोधों जैसे पूर्ण प्रॉक्सी समर्थन की पेशकश नहीं करेंगे
एंथोनीसोमसेटसेट

3

यदि आप HTTP / HTTPS प्रॉक्सी का उपयोग करना चाहते हैं, तो आपको स्क्वीड का उपयोग करना चाहिए। यह ठीक वैसा ही करने के लिए लिखा गया था। Nginx को एक रिवर्स प्रॉक्सी और लोड बैलेंसर के रूप में कार्य करने के लिए लिखा गया था, लेकिन एक फॉरवर्ड प्रॉक्सी नहीं।


मैं विद्रूप / ऊप्स / टिनिप्रोक्सी / आदि के बारे में जानता हूं। मैं सिर्फ अकादमिक रुचि के लिए यह सवाल पूछता हूं
vlad
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.