मैं अपने ग्राहक के नेटवर्क के बाहर इंटरनेट एक्सेस के लिए अपने ऐप को प्रॉक्सी करने के लिए Nginx के साथ एक काम शुरू कर रहा हूं।

मैं इसे काम करने में कामयाब रहा, उन यूआरएल को सीमित कर दिया जिन्हें उजागर करने की आवश्यकता है, लेकिन एक चीज अभी भी मेरा काम खत्म करने के कारण है।

मैं उपयोगकर्ता नाम के आधार पर उपयोगकर्ता पहुंच को सीमित करना चाहता हूं। लेकिन प्रत्येक उपयोगकर्ता के लिए एक if बनाने के बजाय जिसे मैं ब्लॉक करना चाहता हूं, मैं वाइल्डकार्ड का उपयोग करना चाहूंगा क्योंकि सभी उपयोगकर्ता जिन्हें मैं ब्लॉक करना चाहता हूं, एक विशिष्ट स्ट्रिंग के साथ समाप्त होता है: @saspw

My /etc/nginx/conf.d/reverseproxy.conf . का नमूना

server  {
  listen  80;   # Proxy trafic for SAS Visual Analytics Transport Services on HTTP
  server_name  mcdonalds-va-reverseproxy.cons.sashq-r.openstack.sas.com;
  if ($remote_user = '*@saspw'){
      return 401;
  }
  location  /SASVisualAnalyticsTransport {
    proxy_pass  https://mtbis.mcdonalds.com.au:8343/SASVisualAnalyticsTransport/;
  }
}

$remote_user if में, मैं चाहता हूं कि @saspw में समाप्त होने वाले उपयोगकर्ता नाम वाले सभी उपयोगकर्ताओं को 401 त्रुटि मिले, (जिसे मैं बाद में 404 में बदल दूंगा)।

यह तभी काम करता है जब मैं पूरा उपयोगकर्ता नाम, जैसे joe@saspw डालता हूं। वाइल्डकार्ड (*,?) का उपयोग करने से काम नहीं चलता।

क्या $remote_user को इस तरह वाइल्डकार्ड हल करने का कोई तरीका है?

धन्यवाद, जो

2
Jose Lima 5 जून 2017, 02:35
स्टैक ओवरफ्लो प्रोग्रामिंग और विकास प्रश्नों के लिए एक साइट है। यह प्रश्न ऑफ-विषय प्रतीत होता है क्योंकि यह प्रोग्रामिंग या विकास के बारे में नहीं है। सहायता केंद्र में देखें मैं यहां किन विषयों के बारे में पूछ सकता हूं। शायद सुपर उपयोगकर्ता या Unix & Linux स्टैक एक्सचेंज होगा पूछने के लिए एक बेहतर जगह हो। यह भी देखें मैं देव ऑप्स के बारे में प्रश्न कहां पोस्ट करूं?
 – 
jww
5 जून 2017, 04:04

1 उत्तर

सबसे बढ़िया उत्तर

map nginx module का इस्तेमाल करें

map $remote_user $is_denied {
    default 0;
    "~.*@saspw" 1;
}

server  {
  listen  80;   # Proxy trafic for SAS Visual Analytics Transport Services on HTTP
  server_name  mcdonalds-va-reverseproxy.cons.sashq-r.openstack.sas.com;
  if ($is_denied){
      return 401;
  }
  location  /SASVisualAnalyticsTransport {
    proxy_pass  https://mtbis.mcdonalds.com.au:8343/SASVisualAnalyticsTransport/;
  }
}

यह आपको रेगेक्स का उपयोग करने देता है। ध्यान दें कि नक्शा server निर्देश के बाहर होना चाहिए।

2
Robert 5 जून 2017, 06:19
बढ़िया, समस्या हल हो गई! बहुत बहुत धन्यवाद, रॉबर्ट!
 – 
Jose Lima
6 जून 2017, 01:39