nginx 구성에서 후행 슬래시 사용


8
    location /product {
        proxy_pass http://10.0.0.25:8080;
    }

제품 폴더에 대한 첫 번째 위치 설명을 http://mysdomain.com/product/사용하는 경우 사용해야 http://mysdomain.com/product하며 브라우저에서 사용할 수 없습니다 . URL의 슬래시 끝을 사용해야한다는 것을 의미합니다. 두 개의 속임수를 사용하여 제품 폴더에 액세스하고 싶습니다.

이 차이점이 있습니까?

    location /product/ {
        proxy_pass http://10.0.0.25:8080;
    }

답변:


10

이 위치는 다릅니다. 첫 번째는 /production예를 들어 일치 하지 않을 수 있습니다. 따라서 슬래시가있는 위치를 선호합니다.

또한 다음 사항에 유의하십시오.

경우 위치가 슬래시 문자로 종료되며, 요청 proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass 또는 memcached_pass 중 하나에 의해 처리되는 접두사 문자열에 의해 정의되는 다음 URI와 요청에 응답하지 않고 문자열 같으나 슬래시가 있으면 코드 301을 사용하는 영구 리디렉션이 슬래시가 추가 된 요청 된 URI로 반환됩니다.

다음과 같은 것이 있다면 :

location /product/ {
    proxy_pass http://backend;
}

로 이동하면 http://example.com/productnginx가 자동으로 (으)로 리디렉션합니다 http://example.com/product/.

위의 지시어 중 하나를 사용하지 않더라도 언제든지 수동으로 리디렉션을 수행 할 수 있습니다.

location = /product {
    rewrite ^ /product/ permanent;
}

또는 리디렉션을 원하지 않으면 다음을 사용할 수 있습니다.

location = /product {
    proxy_pass http://backend;
}

proxy_pass myip : 8080 / product를 사용하고 있으며이 주소로 브라우저를 호출하십시오. 브라우저가 나를 myip / product로 리디렉션 하고 오류 페이지를 볼 수 없습니다.
barteloma

코드에는 백틱을 사용하십시오. Markdown은 의견을 분석했으며 코드가 실제로 무엇인지 찾기가 어렵습니다.
Alexey Ten

/ product /가 추가 된 경우 브라우저가 / product /를 보내더라도 서버로부터 301을 수신하도록 바인딩되어 있음을 아는 것이 중요합니다. 실제로 유효한 지적.
Sur Max

3

아니요, 동일하지 않습니다. 정규식과 함께 슬래시를 사용하여 둘 다 일치해야합니다.

location ~ /product/?

전체 URL을 일치시키는 방법에 대한 자세한 응답 은 이 관련 답변 을 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.