
나는 다음과 같은 상황에 처해 있습니다. 내 앱의 웹 콘텐츠는 표준 디렉터리에 있습니다 /var/www/my.domain.com/html/
. 또한 users_statics
이 디렉터리 어딘가에 내 앱이 사용자가 업로드한 일부 필수 파일을 저장하는 폴더가 있습니다 . 이러한 파일은 프런트엔드 빌드에 통합되지 않으며 사용 중에는 이 파일에 대한 URL만 필요합니다.
그러나 내 배포 파이프라인 스크립트는 내부의 모든 파일을 삭제하고 /var/www/my.domain.com/html/
기본적으로 디렉터리를 포함하지 않는 새 프런트엔드 빌드를 삽입합니다 user_statics
. 예를 들어:
rm -rf /var/www/my.domain.com/html/*
cp -av build/. /var/www/my.domain.com/html/
user_statics
따라서 디렉터리를 다른 위치에 저장 하고 배포할 때마다 rsync
웹 콘텐츠 폴더에 저장해야 합니다.
mkdir /var/www/my.domain.com/html/.../user_statics
rsync -qah ./user-statics-bkp/* /var/www/my.domain.com/html/.../user_statics
이것이 이 폴더를 처리하는 가장 바람직한 방법인지는 잘 모르겠습니다. 지금쯤에는 백엔드 앱에 API를 추가하여 해당 콘텐츠와 상호 작용할 것이기 때문입니다. 따라서 예를 들어 배포 프로세스 중에 이 폴더에 대한 잘못된 API 호출이 발생할 수 있습니다.
다음 옵션이 표시되지만 그 중 어느 것도 완벽하지 않은 것 같습니다.
- 어떻게든 배포 중에 이 폴더를 "무시"하도록 CD 파이프라인을 다시 작성합니다.
- 이 폴더를 해당
/var/www/html/
폴더로 이동하고 nginx 구성 파일에 추가 지시문을 작성합니다. - 이 폴더의 하위 도메인을 열고 이 하위 도메인에 대한 서버 블록을 만듭니다. 그러나 이 하나의 폴더가 새 서버 블록으로 분리될 자격이 있는지는 확실하지 않습니다.
귀하의 경험으로 볼 때 이를 올바르게 처리하는 더 좋은 방법이 있습니까?
답변1
마지막으로 이 폴더를 이 경로에 배치 /var/www/html/path/to/user_statics
하고 nginx 구성 파일에 간단한 위치 지시문을 추가했습니다 sites-available/my.domain.com
.
location /path/to/user_statics {
root /var/www/html/;
}
user_statics
따라서 그 후 nginx는 /var/www/my.domain.com/html/
. 현재 이 솔루션은 나에게 효과적입니다.