কেন একটি স্ল্যাশ কাজ নিয়ে ক্যোয়ারী করে, কিন্তু কোনও এনগিনেক্স কনফিগারেশনে কোনও পিছনে স্ল্যাশ 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

সত্য, আমি ইওডে এটি তৈরি করেছি এবং সোজা চিন্তা করছিলাম না। ধন্যবাদ
জোশ বিউয়ারগার্ড

1
আপনি পরিবর্তন চেষ্টা করতে পারেন location /search/থেকে location /search। অন্যথায়, আপনি রেগেক্সের সাথে একটি ট্রেলিং স্ল্যাশ যুক্ত করার বিষয়ে এই স্ট্যাকওভারফ্লো প্রশ্নটি দেখতে চাইতে পারেন ।
আনাকসুনামন

উত্তর:


0

ভিন্ন পরিবেশে হলেও আমার একইরকম অভিজ্ঞতা হয়েছে, তাই যাচাই করার জন্য আপনার নিজের এটি পরীক্ষা করতে হতে পারে। অ্যাপাচি-তে, উদাহরণস্বরূপ, আপনি যদি অনুমতি দেওয়ার জন্য কনফিগার করেন CORS(ক্রস অরিজিন রিসোর্স ভাগ করে নেওয়ার), কেবল তখনই কাজ হবে যখন সেখানে একটি পিছনের স্ল্যাশ থাকে। এর জন্য কেবলমাত্র আমি যে ব্যাখ্যাটি সামনে আসতে পেরেছি তা হ'ল সার্ভারের ডিরেক্টরি এবং ফাইলগুলির মধ্যে স্পষ্ট করে বলতে সক্ষম হওয়া দরকার (সর্বোপরি কোনও ফাইলের কোনও এক্সটেনশন থাকতে পারে না এবং ডিরেক্টরিটির মতো দেখতেও শেষ হতে পারে এবং তাই ডিরেক্টরিটির নামও থাকতে পারে কোনও বিন্দু এবং ফাইলের মতো দেখতে শেষ করার জন্য) বা অনুমতি দেওয়ার জন্য CORSএবং ফলস্বরূপ, আপনার সার্ভারে চালিত প্রায় প্রতিটি ক্যোয়ারী। আপনার পরীক্ষা করে দেখুন এবং এটি আপনার ক্ষেত্রে সত্য কিনা তা যাচাই করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.