320x100
320x100

nginx의 특징

: 리액터와 핸들러로 구성된 Reactor 패턴

: 마스터 프로세스가 config 및 worker를 관리하고 여러 워커 프로세스가 실제 요청을 처리

: 기본적으로 싱글 쓰레드를 사용하기 때문에 몇 천개의 커넥션도 효율적으로 관리

 

 

 

 

nginx Conf 파일

- /etc/nginx/site-availables/default

: 1.10.x 버전의 설정 파일

: site-availables 디렉터리 아래에 별도로 파일을 만들어 관리하거나 default 파일을 수정하여 관리

 

- /etc/nginx/conf.d/default.conf

: 1.15.x 버전 이후의 설정 파일

: conf.g 디렉터리 아래에 사이트명.conf를 만들어 관리하거나 default.conf 파일을 수정하여 관리

 

- /etc/nignx/nginx.conf

: ngix에서 기본적으로 로드하는 기본 conf 파일

: http 블록 및 서버에 대한 전반적인 설정이 존재

: 해당 파일 내에서 conf 파일을 추가하여 커스터마이즈 한 구성 파일을 사용하도록 설정

http {
	include /etc/nginx/conf.d/*.conf;
    ...
}

 

 

 

 

 

ngix Log 파일

- /var/log/nginx/access.log

: nginx로 접근하는 패킷에 대한 기록

 

- /var/log/nginx/error.log

: nginx 실행 중 발생한 오류에 대한 기록

 

 

 

 

지시어 (Directives)

: nginx 설정 파일은 지시어에 의해 제어되는 모듈로 이루어져 있음

: 지시어의 형식은 simple directive와 block directive가 있음

 

- simple directive

directive_name params

 

- block directive

directive_name {
	...context
}

 

 

 

 

 

/etc/nginx/conf.d/.conf

- 정적  파일 경로 설정 방법 3가지

location ~* ^.+.(data)$
{
  ...,
  # 1. 정적파일 경로 설정(http 경로에서 uri를 제외한 서버 절대경로)
  root /www/seastory/file/; 
}

# 2. 확장자 구분(정규식을 이용하여 설정)
location ~* ^.+.(?:jpg|jpeg|gif|png|ico)$ { 
  ...,
}

# 3. 경로를 이용하여 설정
location /static/ { 
  ...,
}

 

- WAS 연동 (conf 파일)

location / {
  ...,
  # 임의로 생성한 설정파일인 /etc/nginx/proxy_params 파일을 include하여 WAS만의 설정을 가져옴
  include proxy_params; 

  # WAS 주소
  proxy_pass http://127.0.0.1:3000/; 
}

 

- WAS 연동 (WAS 설정 파일, proxy_params)

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;

client_max_body_size 100M;
client_body_buffer_size 1m;
proxy_intercept_errors on;
proxy_buffering on;
proxy_buffer_size 128k;
proxy_buffers 256 16k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_max_temp_file_size 0;
proxy_read_timeout 300;
proxy_redirect off;

 

- 가상 호스트 설정

http
{
    # 첫 번째 가상 호스트
    server
    {
        # 포트
        listen       80;

        # 첫 번째 호스트 이름
        server_name      aaa.domain.com;

        # 접근 로그 파일 저장 경로
        access_log logs/aaa.domain.com.access.log combined;

        location  /
        {
             #기본 홈 페이지 파일 순서 오른쪽에서 만약 찾지 않으면 일을 ndex.html 파일 찾기 index.htm 파일 로서 홈 페이지 파일
             index  index.html  index.htm;

            #웹 파일 저장 HTML 디렉터리
            root   /data0/htdocs/aaa. domain. com;
        }
    }

    # 두 번째 가상 호스트
    server
    {
        listen      80;
        
        # 두 번째 호스트 이름
        server_name       bbb.otherdomain.com;
        access_log  logs/bbb.otherdomain.com.access.log.combined;
        
        location  /
        {
            index    index.html    index.htm;
            root  /data0/htdocs/bbb.otherdomain.com;
         }
     }

    #세 번째 가상 호스트
    server
    {
        listen      80;
        
        # 세 번째 호스트 이름
        server_name     www.domain.com domain.com   *.domain.com;
        access_log logs/bbb.domain.com.access.log  combined;
        
        location  /
        {
            index  index.html  index.htm;
            root /data0/htdocs/domain.com;
         }
    }
}

: 호스트별로 conf 파일을 만들고 include 해서 사용할 수 있음

: 위 예제에서는 HTTP 헤더의 호스트 값을 기준으로 가상 호스트를 만듦

: 이외에도 포트 번호 등으로도 구분이 가능하다

 

 

 

 

 

Reference

 

03. Nginx 기초 사용법 정리 1 (conf, directives)

nginx의 매우 기본적인 부분에 대해서 정리한다. 이 전에 문서를 보고 번역 & 정리해 놓은 자료를 다시 한 번 정리한다. 'nginx를 사용할 줄 안다' 함은 결국 'conf 파일을 설정/이해할 줄 안다'로 귀결

aimaster.tistory.com

 

nginx 설정정리

1. nginx 설정(universal drective) 위치 : /etc/nginx/nginx.conf user  nginx; #몇개의 thread가 사용될지 정의한다. cpu cores 수를 넣어주면 된다. wor...

areumgury.blogspot.com

 

Nginx에서 Virtual Host 설정하기

가상 호스트의 개념을 이해하기 전에 웹 호스팅에 대한 개념을 알아야한다. 웹 호스팅이 생기기 이전에는 직접 웹 서비스를 하기 위해서 서버를 구매하고 관리했어야 한다. 이런 이유로 초기에

velog.io

 

300x250
728x90