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
/rootroot 사용자의 홈root 전용 설정, 파일
/srv서버가 제공하는 서비스 데이터웹/FTP 서비스 데이터
/sys커널/장치 정보를 보여주는 가상 FSCPU, 디바이스, 드라이버 정보
/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 에서는 네이티브로 달성 가능함
    • ex) 로드밸런싱
  • nginx 와는 달리, 컨테이너에 띄워서 사용하는 경우가 대다수임