स्लैश वर्क के साथ क्वेश्चन क्यों आते हैं, लेकिन मेरे नगीनेक्स कॉन्फिगरेशन में किसी भी ट्रैशिंग स्लैश को 404 नहीं मिलता है?


2

निगनेक्स कॉन्फिगरेशन के नीचे:

upstream search {
          least_conn;
          server www.google.com:80
              max_fails=1
              fail_timeout=10
              weight=1;
            keepalive 12;
        }
    limit_req_zone $binary_remote_addr zone=search:1m rate=10r/s;

resolver 127.0.0.1;

server {
  listen 80 default_server;
  charset utf-8;
  server_name _;

  access_log /dev/stdout json;

    location @search {
      # Deny requests that do not match allowed methods REGEX
      if ($request_method !~ ^GET$ ) {
        return 405;
      }
      set $proxy_uri $uri;
      if ($proxy_uri ~ ^/[^/]+(/.*)$ ) {
        set $proxy_uri "$1";
      }
      # Deny requests that do not match allowed paths REGEX
      if ($proxy_uri !~ ^.*(\?|$) ) {
        return 403;
      }

      # Rate Limit Requests
      limit_req zone=search burst=10 nodelay;

      # Adding new client_max_body_size service attribute per location
      client_max_body_size 1m;
      proxy_http_version 1.1;
      # Set CORS Headers
      add_header 'Access-Control-Allow-Origin' '*';
      add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
      proxy_set_header Origin "";
      proxy_set_header Connection "";
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_pass http://search$proxy_uri$is_args$args;
      }

    location /search/ {
      client_max_body_size 1m;
      # send request to the named location for the service
      error_page 418 = @search; return 418;
    }
  # Default location for unmatched requests
  location / {
      return 404;
    }

  location = /health {
    return 200;
  }
}

चल रहा है

curl -siL  -H 'Host: www.google.com' '127.0.0.1/search/' 

एक 200 लौटाता है

परंतु

curl -siL  -H 'Host: www.google.com' '127.0.0.1/search' 

404 देता है।

मैं स्लैश रिटर्न 200 के साथ और उसके साथ कैसे बनाऊं?


1
शीर्षक विरोधाभासी है, "नो स्लैश" और "नो ट्रेलिंग स्लैश" एक ही ध्वनि है। आपका मतलब है "स्लैश वर्क के साथ" और "नो ट्रेलिंग स्लैश" नहीं है?
Xen2050

सच है, मैंने इसे ईओडी में बनाया था और सीधे नहीं सोच रहा था। धन्यवाद
जोश Beauregard

1
आप को बदलने की कोशिश करना चाहते हो सकता location /search/है location /search। अन्यथा, आप इस StackOverflow प्रश्न को रेगेक्स के साथ अनुगामी स्लैश जोड़ने के बारे में देखना चाह सकते हैं ।
आकाशवाणी

जवाबों:


0

मुझे एक समान अनुभव मिला है, हालांकि एक अलग वातावरण पर, इसलिए आपको इसे सत्यापित करने के लिए स्वयं परीक्षण करने की आवश्यकता हो सकती है। उदाहरण के लिए, अपाचे पर, यदि आप अनुमति देने के लिए कॉन्फ़िगर करते हैं CORS(मूल संसाधन साझाकरण को पार करते हैं), तो यह केवल तभी काम करता है जब कोई अनुगामी स्लैश हो। इसके लिए मैं केवल एक ही व्याख्या कर सकता था कि सर्वर को निर्देशिकाओं और फाइलों के बीच स्पष्ट रूप से बताने में सक्षम होना चाहिए (आखिरकार, एक फ़ाइल का कोई विस्तार नहीं हो सकता है और एक निर्देशिका की तरह लग सकता है, और इसलिए निर्देशिका का नाम हो सकता है) अनुमति देने या अस्वीकार करने के लिए CORS, और, परिणामस्वरूप, लगभग हर क्वेरी जो आप अपने सर्वर पर चलाते हैं, एक बिंदी और अंत की तरह दिख रहा है। यदि आपके मामले में यह सच है तो अपना परीक्षण करें और सत्यापित करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.