유지 관리 페이지가있을 때 서버가 표시되도록 구성하고 싶습니다. 이 코드를 시도하고 작동합니다.
location / {
try_files /maintenance.html $uri $uri/ @codeigniter;
}
그러나 200 상태 코드와 함께 제공되며 검색 엔진에 혼란을 줄 수 있습니다. 모범 사례는 503 상태 코드를 반환하는 것입니다. 구글에 내가 좋아하는 그것에 대해 몇 가지 관련 페이지 발견 이 . 그러나 그들은 리디렉션을 위해 if를 사용하고 nginx 문서에 따르면 ifs를 사용하는 것은 안전하지 않습니다.
if를 사용하지 않고 수행하는 방법이 있습니까? 이 경우 안전한가요?
감사.
답변
모범 사례는 500 상태 코드를 반환하는 것입니다.
500 대신 503을 의미한다고 생각합니다.
그들은
if
리디렉션 을 사용 하고 nginx 문서에 따르면 ifs를 사용하는 것은 안전하지 않습니다.
번호 만 return
입니다 100 % 안전 내부 if
의 location
상황.
nginx 문서 에 따르면 HTTP 상태 코드를 마지막 인수로 지정할 수 있습니다 try_files
. 나는 이것을 시도했지만 작동하지 않았다.
답변
여기 내가하는 일이 있습니다.
if (-f $document_root/maintenance.html) {
return 503;
}
error_page 503 @maintenance;
location @maintenance {
rewrite ^(.*)$ /maintenance.html break;
}
파일이 있으면 유지 관리 페이지가 표시됩니다. 파일을 제거하면 정상으로 돌아갑니다.