1

예를 들어 트래픽이 많은 웹 서버에서.사용중인 파일을 덮어 쓰는 문제 방지

파일을 전환 할 때 발생하는 문제를 줄이기 위해 저는 일반적으로 이전 파일의 이름을 바꾼 다음 새 파일의 이름을 바꿉니다.

필자는 파일 이름 바꾸기가 파일을 읽는 프로세스가 결함이 없도록 'inode 데이터'를 변경하지 않는다는 말을 전했다. 물론 새 파일을 복사하는 대신 임시 복사본의 이름을 바꾸는 것이 더 빠르고 안전합니다.

이 방법은 여전히 ​​최선의 방법이며, 그렇지 않은 경우 어떻게합니까?

답변

1

Apache http-server를 사용한다고 가정합니다.

아파치는 보통 정적 파일을 보내기 위해 커널 함수 sendfile을 사용합니다. 즉, 파일 내용을 캐시하고 변경된 시간을 추적하는 것은 커널의 책임입니다.

새 파일을 만든 다음 이전 파일을 새 파일로 바꿔야합니다 (예 :

mv newfile oldfile

그런 다음 새 파일의 내용 대신 이전 파일로 제공됩니다. HTTP 수준에서 활성화 된 캐시 설정은 브라우저와 프록시가 이전 파일이나 새 파일을 제공하는지 여부에 영향을 줄 수 있습니다.

+1

"mv newfile oldfile"을 (를) 입력 하시겠습니까? – zaf

+0

오류를 알려 주셔서 감사합니다. – Ernelli

관련 문제