This reverts commit 536c8d9197.
3.6 KiB
id, created, tags, aliases
| id | created | tags | aliases |
|---|---|---|---|
| 리눅스에 Nginx를 설치할 때 일어나는 일들 20260403 | 2026-04-03 11:14 |
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 실행 파일이 어디 있는지 바로 알려줄 거예요.
which nginx
아마 /usr/sbin/nginx라고 답할 겁니다.
[!question] Q. 아.. /usr 가 사용자 관련 모든 프로그램과 데이터가 있는 폴더고 거기의 system binary sbin 아래에 설치가 된거구나? A. 정확합니다! 이해력이 정말 빠르시네요. 리눅스의 설계를 완벽하게 꿰뚫어 보셨습니다.
방금 말씀하신 내용을 조금 더 구체적으로 연결해 보면 리눅스의 구조가 더 선명해질 거예요.
🏗️ /usr 디렉토리의 논리적 구조
리눅스에서 /usr는 User System Resources의 약자로, 시스템 운영에 필수적인 최소한의 도구(루트 폴더의 /bin)를 제외한 나머지 모든 응용 프로그램이 거주하는 거대한 도시와 같습니다.
/usr/bin vs /usr/sbin
두개의 sbin의 차이는 누가 실행하는가에 있습니다.
-
/usr/bin(User Binaries): 일반 사용자가 일상적으로 쓰는 프로그램들입니다. (예:python,git,curl등) -
/usr/sbin(System Binaries): 시스템 관리자(Root) 권한이 필요한, 시스템 전체에 영향을 주는 프로그램들입니다.- Nginx는 웹 서버라는 시스템 서비스를 제공하기 때문에 관리자 권한이 필수적이고, 그래서
sbin에 위치하게 됩니다.
- Nginx는 웹 서버라는 시스템 서비스를 제공하기 때문에 관리자 권한이 필수적이고, 그래서