Nginx의 유지 관리 페이지, 모범 사례 이 코드를 시도하고 작동합니다. location /

유지 관리 페이지가있을 때 서버가 표시되도록 구성하고 싶습니다. 이 코드를 시도하고 작동합니다.

location / {
    try_files /maintenance.html $uri $uri/ @codeigniter;
}

그러나 200 상태 코드와 함께 제공되며 검색 엔진에 혼란을 줄 수 있습니다. 모범 사례는 503 상태 코드를 반환하는 것입니다. 구글에 내가 좋아하는 그것에 대해 몇 가지 관련 페이지 발견 . 그러나 그들은 리디렉션을 위해 if를 사용하고 nginx 문서에 따르면 ifs를 사용하는 것은 안전하지 않습니다.

if를 사용하지 않고 수행하는 방법이 있습니까? 이 경우 안전한가요?

감사.



답변

모범 사례는 500 상태 코드를 반환하는 것입니다.

500 대신 503을 의미한다고 생각합니다.

그들은 if리디렉션 을 사용 하고 nginx 문서에 따르면 ifs를 사용하는 것은 안전하지 않습니다.

번호 만 return입니다 100 % 안전 내부 iflocation상황.

nginx 문서 에 따르면 HTTP 상태 코드를 마지막 인수로 지정할 수 있습니다 try_files. 나는 이것을 시도했지만 작동하지 않았다.


답변

여기 내가하는 일이 있습니다.

            if (-f $document_root/maintenance.html) {
                    return 503;
            }
            error_page 503 @maintenance;
            location @maintenance {
                    rewrite ^(.*)$ /maintenance.html break;
            }

파일이 있으면 유지 관리 페이지가 표시됩니다. 파일을 제거하면 정상으로 돌아갑니다.


답변