소개
Ubuntu에서 Nginx 웹 서버는 일반적으로 루트 파일 시스템에 위치한 /var/www/html
에 문서를 저장합니다. 그러나 때로는 문서 루트를 다른 위치로 이동하는 것이 유용할 수 있습니다. 예를 들어, 동일한 Nginx 인스턴스에서 여러 웹 사이트를 제공하는 경우 각 사이트의 문서 루트를 별도로 마운트된 파일 시스템에 두면 특정 사이트나 클라이언트의 요구에 따라 확장할 수 있습니다.
이 안내서에서는 Nginx 문서 루트를 새 위치로 이동합니다.
필수 사항
이 가이드를 완료하려면 다음이 필요합니다:
- Ubuntu 22.04 서버 및 sudo 권한이 있는 비 루트 사용자. 이러한 권한을 가진 사용자를 설정하는 방법에 대한 자세한 내용은 저희의 Ubuntu 22.04에서 초기 서버 설정 가이드에서 알아볼 수 있습니다.
- Nginx가 설치되었습니다. 우분투 22.04에 Nginx 설치 방법에 따라 설치되었습니다.
- A TLS/SSL certificate configured for your server. You have three options:
- 무료 인증서를 받으려면 Let’s Encrypt에서 제공하는 우분투 22.04에 Let’s Encrypt로 Nginx 보안 설정하는 방법을 따르세요.
- 또한 우분투 22.04에 Nginx를 위한 자체 서명된 SSL 인증서 생성 및 구성하는 방법을 따라 자체 서명된 인증서를 생성하고 구성할 수도 있습니다.
- 다른 제공업체에서 구매하고 Nginx를 구성하여 사용할 수도 있습니다. 이 경우에는 우분투 22.04에 Nginx를 위한 자체 서명된 SSL 인증서 생성 및 구성하는 방법의 3단계와 4단계를 따르세요.
본 튜토리얼에서는 도메인 이름을 your_domain으로 사용하지만 실제 도메인 이름으로 대체하십시오.
- A new location for your document root. In this tutorial, we will use the
/mnt/volume-nyc3-01
directory for our new location. If you are using Block Storage on DigitalOcean, this guide will show you how to create and attach your volume. Your new document root location is configurable based on your needs, however. If you are moving your document root to a different storage device, you will want to select a location under the device’s mount point.
단계 1 — 새 위치로 파일 복사
Nginx의 새로운 설치에서 문서 루트는 /var/www/html
에 위치합니다. 그러나 전제 조건 가이드를 따라서 /var/www/your_domain/html
에 새로운 문서 루트를 만들었습니다. 추가적인 문서 루트도 있을 수 있습니다. 이 단계에서는 문서 루트의 위치를 확인하고 해당 파일을 새 위치로 복사할 것입니다.
문서 루트의 위치를 찾으려면 grep
를 사용할 수 있습니다. 활성 사이트에 집중하기 위해 /etc/nginx/sites-enabled
디렉토리에서 검색하겠습니다. -R
플래그는 grep
가 root
지시문이 포함된 줄과 완전한 파일 이름을 출력하도록 보장합니다:
새 서버에서 전제 조건 튜토리얼을 따라왔다면 결과는 다음과 같을 것입니다:
Output/etc/nginx/sites-enabled/your_domain: root /var/www/your_domain/html;
/etc/nginx/sites-enabled/default: root /var/www/html;
/etc/nginx/sites-enabled/default: # deny access to .htaccess files, if Apache's document root
/etc/nginx/sites-enabled/default:# root /var/www/your_domain;
기존 설정이 있는 경우 결과가 여기에 표시된 것과 다를 수 있습니다. 어느 경우든 grep
의 피드백을 사용하여 원하는 파일을 이동하고 적절한 구성 파일을 업데이트할 수 있습니다.
이제 문서 루트의 위치를 확인했으므로 rsync
를 사용하여 파일을 새 위치로 복사할 수 있습니다. -a
플래그를 사용하면 권한 및 기타 디렉토리 속성이 보존되고, -v
는 진행 상황을 따를 수 있도록 자세한 출력을 제공합니다:
참고: 디렉토리에 마지막 슬래시가 없는지 확인하십시오. 탭 완성을 사용하면 추가될 수 있습니다. 마지막 슬래시가 있는 경우 rsync
는 디렉토리의 내용을 마운트 지점에 전송하는 대신 포함하는 html
디렉토리로 전송합니다.
다음과 같은 출력이 표시됩니다:
Outputsending incremental file list
created directory /mnt/volume-nyc3-01
html/
html/index.html
sent 318 bytes received 39 bytes 714.00 bytes/sec
total size is 176 speedup is 0.49
파일이 준비되었으므로, 이 변경 사항을 반영하도록 Nginx 구성을 수정하는 작업으로 넘어갑시다.
단계 2 — 구성 파일 업데이트
Nginx는 전역 및 사이트별 구성 파일을 모두 사용합니다. 우리는 your_domain
프로젝트를 위한 서버 블록 파일을 수정할 것입니다: /etc/nginx/sites-enabled/your_domain
.
참고: 도메인 이름으로 your_domain
을 대체하고, Step 1에서 grep
명령을 실행할 때 생성된 서버 블록 파일을 수정할 것이라는 점을 기억하세요.
먼저 편집기에서 /etc/nginx/sites-enabled/your_domain
을 엽니다:
root
로 시작하는 줄을 찾아 새 루트 위치로 업데이트합니다. 우리의 경우에는 /mnt/volume-nyc3-01/html
입니다:
server {
root /mnt/volume-nyc3-01/html;
index index.html index.htm index.nginx-debian.html;
. . .
}
. . .
Step 1에서 grep
로 출력된 원본 문서 루트 경로를 볼 때 다른 위치에도 주의를 기울이세요. 별칭이나 리라이트에도 해당하는 경우가 있을 수 있습니다. 이를 새로운 문서 루트 위치로 업데이트해야 합니다.
필요한 모든 변경 사항을 완료한 후 파일을 저장하고 닫으세요.
단계 3 — Nginx 다시 시작하기
구성 변경을 완료한 후 Nginx를 다시 시작하고 결과를 테스트할 수 있습니다.
먼저 구문이 올바른지 확인하세요:
모든 것이 순서대로면 다음을 반환해야 합니다:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
테스트가 실패하면 문제를 찾아 수정하세요.
테스트가 통과되면 Nginx를 다시 시작하세요:
서버가 다시 시작되면 영향을 받는 사이트를 방문하여 예상대로 작동하는지 확인하세요. 모든 것이 제대로 작동하는지 확인한 후 데이터의 원본 사본을 제거하는 것을 잊지 마세요:
Nginx 문서 루트를 새 위치로 성공적으로 이동했습니다.
결론
이 튜토리얼에서는 Nginx 문서 루트를 새 위치로 변경하는 방법을 다루었습니다. 이는 기본 웹 서버 관리를 돕는데, 단일 서버에서 여러 사이트를 효과적으로 관리하는 데 도움이 됩니다. 또한 웹 사이트의 필요에 따라 확장할 수 있는 네트워크 블록 저장소와 같은 대체 저장 장치를 활용할 수 있도록 합니다.
바쁜 또는 성장 중인 웹 사이트를 관리하는 경우, 콘텐츠의 높은 전송 속도를 활용하기 위해 HTTP/2로 Nginx를 설정하는 방법을 배우는 것에 관심이 있을 것입니다.