본문 바로가기

Development/Nginx

#2 환경 설정하기

1. 가상 호스트 환경 설정하기

server {
	listen 80;
	server_name www.ggang9.com ggang9.com;
	access_log /var/log/Ngninx/ggang9.com/access.log;
	error_log /var/log/Ngninx/ggang9.com/error.log;
	location / {
		root /ver/log/www.ggang9.com;
		index index.html index.htm;
	}
}

 - listen : 웹서버가 listen하고 있는 포트를 정의한다.

 - server_name : 지시를 통하여 현재 가상 호스트 환경설정에 대응되는 도메인을 정의할 수 있다. 

 - location {

  . 가상 호스트가 처리해야할 동작을 정의한다.

  . 위의 예제에서는 /var/www/www.ggang.com 에 있는 html 파일을 서비스하도록 정의되어 있다.

}


2. 기본 catch-all 가상 호스트 정의

server {
	listen 80 default;
	server_name _;
	location / {
		root /var/www/default;
		index index.html index.html
	}
}

 - catch-all 기능을 이용하여 정의되지 않는 도메인 접근 사용자에게 서비스가 가능하다.

 - server_name으로 "_"로 설정하는 것이 핵심으로 이렇게 하면 가상호스트로 정의 하지 않은 도메인으로 접근한 사용자에게 /var/www/default의 html 들을 서비스 가능하다.


3. 가상호스트에서의 와일드카드 사용

server {
	listen 80;
	server_name ggang9.com *.ggang9.com
	location / {
		........
	}
}

 - 서브도메인을 사용하여 동적 페이지를 구성하려면 다음과 같이 처리가 가능하다.

 - 유의할 점 : 여러 도메인에 대하여 location 정의가 하나이기 때문에 서브 도메인에 모든 기능이 동일한 코드에서 처리가 된다.


4. 프로세스 수 설정

user www www;
worker_processes 5;
error_log logs/error.log;
pid logs/nginx.pid;
worker_rlimit_nofile 8192;
events {
	worker_connections 4096;
}

 - Nginx 도 다중 프로세스 기반으로 동작한다.

 - worker_processes의 기본값은 2로 설정되어 있으며 각 서버 환경에 따라 적절한 값을 사용해야 한다.

 - 프로세스당 접속수 제한은 worker_connections 지시어로 지정되면 해당 값보다 많은 접속을 동시에 수용할 수 없다.

 - worker_processes값은 서버의 코어 수와 같은 값을 사용하는 것으로 권장한다.

 - 최대 클라이언트 수 = worker_processes * worker_connections.


5. 업로드 파일 크기의 확장

 - 기본적으로 1MB 이상되는 파일의 업로드가 제한되어 있다.

  . '413 Request Entity Too Large' 에러 발생.

client_max_body_size 100M;

 - 최대값은 Nginx가 사용할수 있는 디스크 공간보다 작은 값이면 어떤 값도 설정이 가능하다 그 이유는 업로드 방식은 일단 임시 공간에 파일을 다운로드 한 후에 Backend Application으로 파일을 넘겨 주기 때문이다.

 - 아래는 클라이언트 업로딩과 관련된 지시어와 제한값들의 목록이다.


지시어 

용도 

 client_body_in_file_only

 client의 요청 바디를 항상 임시 디스크 파일에 저장하도록 한다. 처리가 완료되어서 삭제 되지 않는다.

 client_body_in_single_buffer

 바디 전체를 client의 요청 버퍼에 저장할지 여부 

 client_body_buffer_size

 client 요청 바디 버퍼의 크기를 정한다.

 client_body_temp_path

 client 요청 바디를 저장하는 임시 파일 저장 위치를 지정한다.

 client_body_timeout

 client가 보낸 요청 바디에 대한 읽기 제한 시간을 설정

 client_header_buffer_size 

 client가 요청 헤더를 저장하는 버퍼 크기 지정 

 client_header_timeout

 client가 보낸 요청 헤더에 대한 읽기 제한 시간을 설정

 client_max_body_size

 client 요청 바디 크기의 최대 허용치를 지정




엔진엑스로 운용하는 효율적인 웹사이트

저자
디판카 사카 지음
출판사
에이콘출판 | 2013-03-22 출간
카테고리
컴퓨터/IT
책소개
아파치를 대체하고 있는 강력한 웹서버 엔진엑스(Nginx)의 실...
가격비교



'Development > Nginx' 카테고리의 다른 글

#5 재작성에 관한 모든 것(2)  (0) 2014.02.03
#4 재작성에 관한 모든 것(1)  (0) 2014.01.29
#3 Nginx의 기타 코어 HTTP 모듈  (0) 2014.01.22
#1 Nginx 설치하기  (0) 2014.01.06