반응형
Nginx에서 root와 alias의 차이, 쉽게 이해하기
웹 서버를 다루다 보면 정적 파일을 서비스하기 위해 root와 alias라는 지시어를 접하게 됩니다. 얼핏 보면 비슷해 보이지만, 실제 동작 방식은 꽤 다릅니다. 이 차이를 잘 이해해야 정적 파일이 제대로 서빙되고, 원인 모를 오류도 줄일 수 있습니다.

1. root란 무엇인가?
root는 말 그대로 기준 디렉토리(루트)를 지정하는 역할을 합니다.
- Nginx는 location 경로를 그대로 이어 붙여서 실제 파일 경로를 찾습니다.
예시:
location /static/ {
root /app;
}
- 사용자가 /static/style.css 요청 → /app/static/style.css 파일을 찾습니다.
- 즉, location /static/이 실제 디렉토리 /app/static/으로 이어집니다.
2. alias란 무엇인가?
alias는 경로를 치환하는 역할을 합니다.
- location 부분은 버리고, 요청 경로의 나머지를 alias 뒤에 붙입니다.
예시:
location /static/ {
alias /app/staticfiles/;
}
- 사용자가 /static/style.css 요청 → /app/staticfiles/style.css 파일을 찾습니다.
- 여기서는 /static/이라는 URL 접두어가 실제 경로로 들어가지 않습니다.
3. 두 설정의 차이를 표로 비교
| 구분 | 설정 방식 | 요청 URL | 실제 찾는 경로 |
| root | root /app; | /static/style.css | /app/static/style.css |
| alias | alias /app/staticfiles/; | /static/style.css | /app/staticfiles/style.css |
즉, root는 경로를 덧붙이고, alias는 경로를 바꿔치기한다고 생각하면 쉽습니다.
4. 언제 무엇을 쓰면 좋을까?
- root: URL 경로와 실제 디렉토리 구조가 같을 때 적합합니다.
- 예: /images/flower.jpg → /app/images/flower.jpg
- alias: URL 경로와 실제 디렉토리 구조가 다를 때 적합합니다.
- 예: /static/style.css → /app/staticfiles/style.css
5. 정리
- root = 기준 디렉토리, location 경로가 붙는다.
- alias = 경로 치환, location 경로는 버려지고 지정한 디렉토리로 바로 연결된다.
👉 따라서 Django 같은 웹 프레임워크에서는 정적 파일(collectstatic으로 모인 /app/staticfiles/)을 서비스할 때 alias를 쓰는 것이 정확합니다. URL 접두어(/static/)와 실제 경로(/app/staticfiles/)가 다르기 때문입니다.
반응형
'컴퓨터 활용 > 노년에 즐기는 코딩' 카테고리의 다른 글
| aws ec2 modify-instance-attribute ... --block-device-mappings ... 구문 완전 해설 (0) | 2025.09.16 |
|---|---|
| Git 태그(Tag) 처리 완전 정리 (0) | 2025.09.12 |
| 시마당 플랫폼에서 전자책 출간 방법 (0) | 2025.09.09 |
| 전자책 쓰기의 장점 다섯 가지 (1) | 2025.09.08 |
| 전자책 관리 및 뷰어 서비스, 캘리버(Calibre) (4) | 2025.09.07 |
댓글