web server/nginx 2014. 8. 6. 17:24

nginx에서는 연결 처리 방법을 지정할 수 있다.

그리고 그 방법은 다양하다. 그리고 특정 방법의 사용 가능 여부는 사용하는 플랫폼에 따라 다르다. 

일반적으로 nginx를 지원하는 플랫폼에서는 자동으로가장 효율적인 방법을 선택하게 된다. 그러나 필요한 경우 지정할 수 있다.

  • select - 표준 방법. 
  • poll - 표준 방법. 
  • kqueue - FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0, and Mac OS X에서 사용되는 효율적인 방법
  • epoll - Linux 2.6+에서 사용되는 효율적인 방법



'web server > nginx' 카테고리의 다른 글

nginx php-fpm 설정  (0) 2014.06.02
특정 파일 호출 시 access 로그 남기지 않게 하기  (0) 2014.06.02
특정 요청만 access 로그 남기지 않게 하기  (0) 2014.05.14
nginx worker 설정  (0) 2014.04.18
nginx 로그 설정  (0) 2014.04.18
posted by 구닥다리 엔지니어
:
web server/nginx 2014. 6. 2. 18:46

다음과 같이 nginx.conf 파일에 추가한다.


            location ~ \.(php|c2s|inc|lib)$ {

                    if ( $request_uri ~ "/file.php" ) {

                        access_log off;

                    }

                    root            /var/www/html;

                    fastcgi_pass    unix:/dev/shm/php5-fpm.sock;

                    fastcgi_index   index.php;

                    fastcgi_param   SCRIPT_FILENAME /var/www/html$fastcgi_script_name;

                    include         fastcgi_params;

            }



php 파일 호출 시 다운로드가 된다면 위 설정을 확인

posted by 구닥다리 엔지니어
:
web server/nginx 2014. 6. 2. 18:43

if ( $request_uri ~ "/file.txt" ) {

access_log off;

}

/file.txt 호출 시 로그 기록을 남기지 않는다.

posted by 구닥다리 엔지니어
:
web server/nginx 2014. 5. 14. 19:18

반복적으로 오는 요청에 대해서 access 로그를 남기지 않도록 설정할 수 있는데, nginx 설정파일에서 if 문을 이용하는 방법이다.


nginx 설정 중 location 구문 안에 다음과 같이 넣어준다.

 location ~ \.php {

if ( $request_uri ~ "/index.html" ) {

access_log off;

}

}

/index.html 요청이 올경우 access log를 남기지 않는다는 의미이다.

'web server > nginx' 카테고리의 다른 글

nginx php-fpm 설정  (0) 2014.06.02
특정 파일 호출 시 access 로그 남기지 않게 하기  (0) 2014.06.02
nginx worker 설정  (0) 2014.04.18
nginx 로그 설정  (0) 2014.04.18
worker_cpu_affinity 설정  (0) 2014.04.01
posted by 구닥다리 엔지니어
:
web server/nginx 2014. 4. 18. 16:25

nginx 에서 worker 설정하는 옵션이 존재 한다.

  • worker_processes : nginx를 실행할 프로세스 개수를 지정
  • worker_cpu_affinity : cpu에 작업자 프로세스를 바인딩
  • worker_rlimit_nofile : 열수 있는 최대 파일 지정
worker_processes 의 값은 서버의 core 수 보다 많게 설정할 수 있다. 성능 부분은 테스트 해봐야 하지만 문제가 발생하진 않는다.

하지만 worker_cpu_affinity 설정은 서버의 core 수를 고려해서 설정해야한다. 멀티 코어를 사용할 경우 분산 처리를 위한 옵션이라고 볼 수 있는데, 잘 못된 설정은 오히려 설정을 떨어 뜨릴 수 있다. 

예로, 1 core의 가상머신에 process 설정만 4를 주어도 문제가 발생하진 않지만, affinity 값을 4 core 기준으로 할당하면 문제가 발생한다.


posted by 구닥다리 엔지니어
:
web server/nginx 2014. 4. 18. 15:32

nginx에서 로그 파일 레벨을 설정함으로써 문제를 찾아 분석할 수 있다.

error_log        /var/log/error.log    debug;

log level


  • emerg: 시스템을 사용할 수 없는 상태에 있는 비상 상황.
  • alert : 조치가 신속하게 필요한 심각한 상황
  • crit : 해결해야 할 중요한 문제
  • error : 오류가 발생 또는 실패
  • warn : 경고, 정상적이지는 아니지만 큰 영향이 없음
  • notice : 정상, 일어난 일에 대해 주목할 필요가 있다.
  • info : 정보 메세지
  • debug : 문제 발생 위치를 파악할 수 있는 정보


posted by 구닥다리 엔지니어
:
web server/nginx 2014. 4. 1. 18:55

nginx 설정 중에 worker_cpu_affinity 라는 설정이 있다.

여러개의 CPU core를 사용할 경우 nginx의 모든 worker가 하나의 CPU를 사용하게 될 경우 위 설정을 추가해서 여러 CPU로 분산시킬 수 있다.

하지만 irqbalance를 통해 분산되고 있다면, 이 옵션이 꼭 필요 할까 하는 생각도 든다.


프로세스의 개수에 따라 설정하는 방법은 다음과 같다.

1. 2 core

worker_cpu_affinity 0101 1010;

2. 4 core

worker_cpu_affinity 0001 0010 0100 1000;

3. 8 core

worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000


언제 한번 worker_cpu_affinity 설정에 따른 성능 차이 테스트를 해보는 시간을 가져야 겠다.


참고 사이트

http://nginx.org/en/docs/ngx_core_module.html#worker_cpu_affinity


'web server > nginx' 카테고리의 다른 글

nginx php-fpm 설정  (0) 2014.06.02
특정 파일 호출 시 access 로그 남기지 않게 하기  (0) 2014.06.02
특정 요청만 access 로그 남기지 않게 하기  (0) 2014.05.14
nginx worker 설정  (0) 2014.04.18
nginx 로그 설정  (0) 2014.04.18
posted by 구닥다리 엔지니어
: