Nginx HTTP Server - 1. 작업환경 준비하기


발생일: 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 - 2. 설치

Nginx HTTP Server - 3. 환경설정

Nginx HTTP Server - 4. HTTP 환경설정

Nginx HTTP Server - 5. 모듈 환경설정

Nginx HTTP Server - 6. 참고/주의




저작자 표시 비영리 변경 금지
신고