티스토리 뷰
발생일: 2013.12.06
키워드: nginx, 엔진엑스
문제:
이번 프로젝트에선 nginx 로 웹서버를 운영하기로 했다.
아직 한 번도 사용해본 적이 없었는데, 마침 옆자리 D가 예전에 사둔 책이 있다며 가져다줬다.
Nginx HTTP Server 라는 책이었는데, 이해하기 쉽게 설명도 잘 되어있고 좋았다.
(지금 찾아보니 평점이 썩 좋진 않다. 난 좋던데... -_-a ㅎㅎ)
책 보며 정리했던 것에 몇 가지 설명을 덧붙여 옮겨둔다.
해결책:
## nginx 를 구동할 사용자 계정 생성
사용자 계정 확인
$ cat /etc/passwd
쉘 접근 권한이 없는 상태로 홈 디렉토리를 지정해 추가하기
$ useradd --shell /sbin/nologin --home-dir /usr/local/nginx nginx
사용자를 특정 그룹에 추가시키려면
$ usermod --append --groups 그룹명 사용자명
## 서비스 구동하기
흔히 서비스라고 부르는 백그라운드 애플리케이션들은 대부분 명령 뒤에 간단히 &를 붙이는 방식으로는 실행하지 않는다.
서비스의 시동과 중지를 관리하기 위해 꽤 복잡한 스크립트를 사용하고,
이중 가장 일반적인 것이 `/etc/init.d` 이다.
Red Hat, Fedora, CentOS, Mandriva 같은 리눅스 배포판에는
`service`라 불리는 스크립트가 함께 따라온다.
$ service name command
형식으로 제어할 수 있다.
ptom 서버에서 deploy 사용자로 하면 권한이 없어서 service 커맨드가 없다고 나온다.
$ sudo /sbin/service --status-all
과 같은 식으로 호출하면 실행 가능하다.
## 유닉스 디렉토리 구조
자주 사용하지만 헷갈리는 것들만 정리
/etc : 서비스와 애플리케이션이 사용하는 시스템 차원의 환경 설정 파일.
예를 들어, 엔진엑스 서버 설정이나 가상 호스트 편집 등
/opt : 옵션 소프트웨어 패키지. 기본 운영체제 설치에 포함되지 않는 애플리케이션 파일과 추가 패키지를 지원할 목적으로 마련된 것. 거의 사용하지 않는다.
/bin: 바이너리. 시스템의 모든 사용자가 공통으로 사용할 수 있는 실행 가능한 바이너리와 스크립트. ls, cp, mv 등등
/sbin: 시스템 바이너리. 시스템 관리자 전용 유틸리티. 루트 사용자만 접근 가능하다. ifconfig, halt, service 등등
/lib: 시스템 차원에서 공유하는 라이브러리와 커널 모듈. /bin과 /sbin에 있는 바이너리를 실행할 때 필요
/home: 사용자 홈 디렉토리
/usr : 읽기 전용 사용자 데이터. 읽기 전용 사용자 데이터를 공유하기 위한 두 번째 계층
/usr/bin : 모든 사용자가 공유하는 필수적이지 않은 명령 바이너리와 스크립트 (wget, gzip 등)
/usr/include : 컴파일 시 포함되는 C 라이브러리에서 넘어온 헤더 파일
/usr/lib : /usr/bin 과 /usr/sbin 에서 사용하는 라이브러리
/usr/sbin : 모든 사용자가 공유하는 필수적이지 않은 시스템 명령 바이너리와 스크립트(useradd, ntpdate 등)
/usr/local : 지역 데이터 전용으로 사용되는 세 번째 계층
/var : 변동 파일. 로그 파일, 캐시, 스풀 등과 같은 실행 중인 애플리케이션이나 서비스에 의해 내용이 변경되는 파일들.
/var/lib : 애플리케이션이나 운영체제와 관련된 변수 상태 정보.
MySQL 데이터베이스 파일은 보통 `/var/lib/mysql`에 저장된다.
/var/lock : 애플리케이션의 자원 접근 동기화에 사용되는 잠금 파일
/var/log : 프로그램, 서비스, 시스템 커널에서 생성되는 로그 파일
/var/run : 실시간 변수 데이터. 시스템 재부팅 시 완전히 삭제되고, 가동이 시작될 때 상태에 관한 모든 정보를 제공한다. (pid 같은 걸 여기에 저장하는 모양이다)
/var/spool : 이메일, 프린트 작업과 같이 처리를 기다리는 파일을 저장하는 디렉토리
/var/tmp : 시스템을 재부팅하더라도 삭제돼서는 안되는 임시 파일을 위한 저장소
## 패키지 매니저와 다운로드 매니저
패키징 시스템, 패키지 매니저, 다운로드 매니저의 차이점을 알자.
- 리눅스와 유닉스의 차이
http://blog.naver.com/idbankbox?Redirect=Log&logNo=60198945231
리눅스 분야에서는 여러 패키징 시스템이 있는데,
레드햇 기반에서는 RPM을, 데비안 기반에서는 APT를 사용한다.
RPM 패키징 시스템을 사용하는 곳에서는 yum이 가장 많이 사용되는 패키지 매니저이다.
APT 시스템에서는 apt-get 도구를 사용한다.
wget, curl 은 다운로드 매니저다.
=====
Nginx HTTP Server - 1. 작업환경 준비하기
Nginx HTTP Server - 4. HTTP 환경설정
Nginx HTTP Server - 5. 모듈 환경설정