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 요청 바디 크기의 최대 허용치를 지정 |
'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 |