main
| 경로 | 역할 | 대표 내용 |
|---|
/usr | 대부분의 사용자 공간 프로그램/라이브러리 | /usr/bin, /usr/lib, /usr/share |
/etc | 시스템 설정 파일 | nginx 설정, systemd 설정, 사용자 설정 등 |
/var | 실행 중 계속 변하는 데이터 | 로그, 캐시, DB, spool |
/home | 일반 사용자 홈 디렉터리 | /home/user |
/opt | 별도 설치된 응용프로그램 | 상용 프로그램, 독립형 패키지 |
/run | 부팅 이후 생성되는 런타임 상태 | PID, socket, lock 등 |
| - | - | - |
/bin, /usr/bin (usr-merge) | 기본 실행 명령어 | ls, cp, mv, cat, bash |
/sbin, /usr/sbin (usr-merge) | 시스템 관리용 기본 명령어 | fsck, ip, reboot 등 |
/boot | 부팅에 필요한 파일 | Linux kernel, initramfs, GRUB |
/dev | 장치 파일 | 디스크, 터미널, 랜덤 장치 등 |
/lib, /lib64 | 핵심 공유 라이브러리 | libc, loader, 커널 모듈 관련 파일 |
/media | 이동식 미디어 자동 마운트 지점 | USB, CD/DVD |
/mnt | 임시/수동 마운트 지점 | 별도 디스크, 네트워크 스토리지 |
/proc | 프로세스/커널 정보를 보여주는 가상 FS | /proc/cpuinfo, /proc/meminfo |
/root | root 사용자의 홈 | root 전용 설정, 파일 |
/srv | 서버가 제공하는 서비스 데이터 | 웹/FTP 서비스 데이터 |
/sys | 커널/장치 정보를 보여주는 가상 FS | CPU, 디바이스, 드라이버 정보 |
/tmp | 임시 파일 | 프로그램의 일시적 파일 |
/lost+found | 파일시스템 복구 시 발견된 파일 | ext 계열 파일시스템에서 사용 |
/usr = Unix System Resources (backronym)
/etc = Editable Text Configuration (backronym)
- usr-merge
- 과거에는 /usr가 별도 디스크나 네트워크 파일시스템일 수 있어서, /usr가 아직 마운트되지 않은 초기 부팅 단계에도 필요한 최소 명령과 라이브러리를
/bin, /sbin, /lib 에 따로 둬야 했다.
- /bin 부팅 초기에 반드시 필요한 명령
- /usr/bin 나머지 일반 명령
- 하지만 현대 Linux에서는 initramfs가 초기 부팅을 담당하고 /usr를 매우 일찍 사용할 수 있게 되면서 이 구분의 실익이 거의 사라졌다.
- 그래서
/bin/bash, /usr/bin/bash 같은 중복된 계층 개념을 없애고 실제 저장 위치를 /usr로 통일한 게 usr-merge
sudo ss -ltnp | grep ':8080'
# -l LISTEN 상태만
# -t TCP
# -n 포트/주소를 숫자로 표시
# -p 사용 중인 프로세스 표시
# -u UDP까지 같이
nginx
- 호스트 머신에서 직접 돌리는 경우도 많다
- 호스트 머신에서 직접 돌릴 경우 설정파일 위치는
/etc
- 설정파일 조각 위치는 내부의
conf.d
/etc/nginx/conf.d/*.conf
conf.d 내부의 파일을 감지해서 자동으로 reload 하지 않는다
- 호스트 머신에서 돌릴 경우, 설정파일 수정했을 경우
systemctl reload
- 설정 문법, 참조 파일 검증:
sudo nginx -t
- 설정 reload, 이는 기존 nginx 를 죽이지 않고 새 설정으로 worker 교체:
sudo systemctl reload nginx
- 기존 nginx 를 죽이고 새 설정으로 worker 교체:
sudo systemctl restart nginx
- 정적 페이지를 서빙할 경우 웹서버 역할
- 다른 서버로 요청을 전달할 경우 리버스 프록시 역할
traefik
- 컨테이너 환경 특화된 리버스 프록시
- nginx 에서는 달성하기에 손이 가는 몇가지를 traefik 에서는 네이티브로 달성 가능함
- nginx 와는 달리, 컨테이너에 띄워서 사용하는 경우가 대다수임