쿼츠 블로그를 위해 대공사
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
---
|
||||
id: 리눅스에 Nginx를 설치할 때 일어나는 일들 20260403
|
||||
created: 2026-04-03 11:14
|
||||
tags:
|
||||
aliases:
|
||||
---
|
||||
### Nginx는 어디에 흩어져 있나요?
|
||||
Nginx를 설치하면 보통 다음과 같이 각기 다른 폴더에 파일들이 들어갑니다.
|
||||
|
||||
| **파일 종류** | **위치 (경로)** | **설명** |
|
||||
| ------------------ | ----------------- | ------------------------------------------- |
|
||||
| **실행 파일 (Binary)** | `/usr/sbin/nginx` | 실제 프로그램을 돌리는 "근육"입니다. `/etc`가 아니라 여기에 있습니다. |
|
||||
| **설정 파일 (Conf)** | `/etc/nginx/` | `nginx.conf` 등이 위치하는 "두뇌"입니다. |
|
||||
| **기본 웹 콘텐츠** | `/var/www/html` | 웹사이트에 보여줄 HTML 파일들이 있는 "창고"입니다. |
|
||||
| **로그 파일** | `/var/log/nginx/` | 접속 기록이나 에러가 쌓이는 "일기장"입니다. |
|
||||
[[FHS(Filesystem Hierarchy Standard)]] 참고
|
||||
|
||||
### 왜 `/etc/nginx`가 눈에 잘 띌까요?
|
||||
|
||||
우리가 Nginx를 다룰 때 가장 많이 수정하고 접근하는 곳이 `/etc/nginx`이기 때문입니다.
|
||||
|
||||
실행 파일인 `/usr/sbin/nginx`는 우리가 직접 건드릴 일이 거의 없습니다. 하지만 "포트 번호를 바꾼다", "도메인을 연결한다" 같은 작업을 할 때는 무조건 `/etc/nginx` 안에 있는 텍스트 설정 파일들을 편집해야 하죠. 그래서 마치 Nginx가 거기 설치된 것처럼 느껴질 수 있습니다.
|
||||
|
||||
|
||||
### 리눅스의 '관습' (설정과 실행의 분리)
|
||||
|
||||
리눅스에서 `/etc`는 **"시스템의 상태를 결정하는 텍스트 데이터"**만 담기로 약속되어 있습니다.
|
||||
|
||||
- **이유 1 (백업):** 서버를 옮길 때 `/usr`(프로그램)는 새로 설치하면 되지만, `/etc`(내 설정)는 백업하지 않으면 다 날아갑니다. 그래서 설정만 따로 모아두는 거죠.
|
||||
|
||||
- **이유 2 (보안):** 실행 파일이 있는 곳은 읽기 전용으로 보호하고, 설정 파일이 있는 곳만 관리자가 수정할 수 있게 권한을 나누기 위함입니다.
|
||||
|
||||
### 💡 확인해보기
|
||||
|
||||
궁금하시다면 터미널에 아래 명령어를 입력해 보세요. Nginx 실행 파일이 어디 있는지 바로 알려줄 거예요.
|
||||
|
||||
```bash
|
||||
which nginx
|
||||
```
|
||||
아마 `/usr/sbin/nginx`라고 답할 겁니다.
|
||||
|
||||
|
||||
> [!question]
|
||||
> Q. 아.. /usr 가 사용자 관련 모든 프로그램과 데이터가 있는 폴더고 거기의 system binary sbin 아래에 설치가 된거구나?
|
||||
> A. 정확합니다! 이해력이 정말 빠르시네요. 리눅스의 설계를 완벽하게 꿰뚫어 보셨습니다.
|
||||
>
|
||||
> 방금 말씀하신 내용을 조금 더 구체적으로 연결해 보면 리눅스의 구조가 더 선명해질 거예요.
|
||||
## 🏗️ /usr 디렉토리의 논리적 구조
|
||||
|
||||
리눅스에서 `/usr`는 **User System Resources**의 약자로, 시스템 운영에 필수적인 최소한의 도구(루트 폴더의 `/bin`)를 제외한 **나머지 모든 응용 프로그램**이 거주하는 거대한 도시와 같습니다.
|
||||
|
||||
### /usr/bin vs /usr/**s**bin
|
||||
|
||||
두개의 `sbin`의 차이는 **누가 실행하는가**에 있습니다.
|
||||
|
||||
- **`/usr/bin` (User Binaries):** 일반 사용자가 일상적으로 쓰는 프로그램들입니다. (예: `python`, `git`, `curl` 등)
|
||||
|
||||
- **`/usr/sbin` (System Binaries):** 시스템 관리자(Root) 권한이 필요한, 시스템 전체에 영향을 주는 프로그램들입니다.
|
||||
|
||||
- **Nginx**는 웹 서버라는 시스템 서비스를 제공하기 때문에 관리자 권한이 필수적이고, 그래서 `sbin`에 위치하게 됩니다.
|
||||
Reference in New Issue
Block a user