nginx 설정 아래에 대하여 :
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
사실, 나는 EOD에서 이것을 만들었고 똑바로 생각하지 않았습니다. 감사합니다
—
Josh Beauregard
당신은 변화 시도 할 수 있습니다
—
Anaksunaman
location /search/
에 location /search
. 그렇지 않으면 정규식으로 슬래시를 추가하는 방법에 대한 이 StackOverflow 질문 을 살펴볼 수 있습니다 .