Nginx 기술 패 치 (2) 명령

4462 단어
명령 (directive) 은 Nginx 가 어떻게 실행 되 는 지 제어 합 니 다. Nginx 는 컴 파일 할 때 어떤 모듈 이 불 러 오 는 지 제어 합 니 다. 각 모듈 은 명령 에 의 해 설정 되 어 있 습 니 다.
단순 명령
1.1 user 는 기본 값 nobody 를 가지 고 있 습 니 다.워 커 프로 세 스 가 어느 사용자 계 정 에서 실행 되 는 지 제어 합 니 다.user nginx;
1.2 worker_processes 기본 값 1 은 보통 CPU core 수 와 일치 합 니 다.Nginx 가 몇 개의 worker process 를 파생 시 키 는 지 제어 합 니 다.auto 로 설정 할 수 있 습 니 다.Nginx 로 하여 금 cpu core 수 를 자동 으로 감지 하 게 합 니 다.cpu 관련 정보 보기: 논리 CPU 개수: \ # cat / proc / cpuinfo | grep "processor" | wc - l 물리 CPU 개수: \ # cat / proc / cpuinfo | grep "physical id" | sort | uniq | wc - l 물리 CPU 당 코어 개수: \ # cat / proc / cpuinfo | grep "cpu cores" | wc - l
```
worker_processes 1;
```

1.3 error_log 는 error log 의 위치 와 단 계 를 제어 합 니 다.다른 Context 에서 설정 할 수 있 습 니 다.로 그 는 다음 단계 가 있 습 니 다.info - Information · notice - Notice · warn - Warnings · error - Error · crit - Critical · alert - High Alert · emerg - Emergency error_log /var/logs/error.log info; 1.4 pid 저장 PID 의 파일 경로.pid /var/run/nginx.pid;
블록 명령 어
패키지 블록 은 괄호 {} 사이 에 있 고 Context 명령 이 라 고도 합 니 다.Context 는 main, events, HTTP, server, location, upstream, if, stream, mail 등 부분 으로 나 뉜 다.
이벤트 Context 명령
하나의 Event Context 에서 만 Nginx 의 행동 을 최적화 할 수 있 습 니 다.2.1 worker_connections 워 커 프로 세 스 가 동시에 처리 할 수 있 는 최대 연결 수 입 니 다.
	 worker_connections 1024;

2.2 use 는 보통 설정 이 필요 하지 않 습 니 다.클 라 이언 트 스 레 드 를 재 활용 하 는 폴 링 방법 을 설정 합 니 다.Nginx 는 보통 다른 운영 체제 에서 다른 값 을 자동 으로 설정 합 니 다. Linux 2.6 + 를 사용 하면 epoll 을 사용 해 야 합 니 다.만약 당신 이 * BSD 를 사용한다 면, 당신 은 kqueue 를 사용 해 야 합 니 다.
	use epoll;

2.3 multi_accept 만약 multiaccept 가 금지 되 었 습 니 다. nginx 작업 프로 세 스 는 새로운 연결 만 동시에 받 아들 일 수 있 습 니 다.그렇지 않 으 면 하나의 작업 프로 세 스 가 모든 새로운 연결 을 동시에 받 아들 일 수 있 습 니 다.nginx 가 kqueue 연결 방법 을 사용 하면 이 명령 은 무 시 됩 니 다. 이 방법 은 새로운 연결 을 기다 리 는 수량 을 보고 하기 때 문 입 니 다.
	Syntax: multi_accept on | off;
	Default:    multi_accept off;
	Context:    events

2.4 accept_mutex 는 보통 설정 하지 않 습 니 다. 값 은 on / off 이 고 기본 값 은 on 입 니 다.새로운 연결 이 도 착 했 을 때 accept 를 활성화 하면mutex, 그 많은 Worker 는 직렬 로 처 리 됩 니 다. 그 중 하 나 는 Worker 가 깨 어 나 고 다른 Worker 는 계속 휴면 상 태 를 유지 합 니 다.off 로 설정 하면 모든 Worker 가 깨 어 나 지만 하나의 Worker 만 새 연결 을 가 져 올 수 있 고 다른 Worker 는 다시 휴면 상태 로 들 어 갑 니 다.
	accept_mutex on;

2.5 accept_mutex_delay 는 acceptmutex 가 활성 화 된 상태 에서 작용 합 니 다.여러 worker process 가 돌아 가면 서 상호 배척 자 물 쇠 를 빼 앗 으 려 고 깨 어 났 을 때 이 매개 변 수 는 최대 대기 시간 입 니 다.설정 한 시간 이 너무 길 면 어떤 워 커 프로 세 스 가 너무 많은 요청 을 처리 할 수 있 기 때문에 동시 다발 이 큰 경우 짧게 설정 하여 다른 워 커 프로 세 스 도 요청 을 받 아들 일 수 있 습 니 다.
	  :              。
	  :accpet_mutex_delay 
	  :500ms
	  :accpet_mutex_delay 1000ms;

HTTP Context 명령
3.1 include 는 다른 파일 의 명령 을 도입 합 니 다. 예 를 들 어 mime type 과 파일 확장자 의 mapping 설정 을 도입 합 니 다.
include /etc/nginx/mine.types

3.2 default_type. mine. type 파일 에서 대응 하 는 mime type 을 찾 지 못 하면 이 설정 을 사용 합 니 다. 기본 값 은 application / ocket - stream 입 니 다. 즉, 파일 을 다운로드 합 니 다.
default_type  application/octet-stream;

3.3 log_format ngx_http_log_module 의 log 형식 설정, 첫 번 째 매개 변 수 는 형식의 이름 입 니 다. 예 를 들 어 main, 두 번 째 매개 변 수 는 일련의 변수 이름 입 니 다.
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

3.4 access_log http 에서 요청 한 log 의 위치 와 형식 입 니 다.
 access_log  logs/access.log  main;

3.5 sendfile 운영 체제 기능 사용 SFNODISKIO, socket 으로 데이터 전송 속 도 를 가속 화 합 니 다.
sendfile        on;

3.6 tcp_nopush
  : tcp_nopush on | off;

   : tcp_nopush off;

   : http, server, location

      nginx FreeBSD   TCP_NOPUSH     ,  Linux   TCP_CORK     。       sendfile      。        

 Linux FreeBSD 4.*                 ;

         。

sendfile, tcpnopush 아래 의 글 은 비교적 깊이 있 게 말한다.https://www.cnblogs.com/wajika/p/6573014.html
3.6 keepalive_timeout 하나의 요청 이 완 료 된 후에 얼마나 더 연결 해 야 합 니까? 요청 시간 이 얼마 가 아니 라 긴 연결 을 유지 하고 연결 과정 이 시스템 에 가 져 오 는 성능 손실 을 줄 이 는 것 이 목적 입 니 다. 스 레 드 탱크, 데이터 베이스 연결 탱크 와 유사 합 니 다.
 keepalive_timeout  65;

* * 3.7 gzip * 압축 을 사용 할 지 여부 입 니 다.
gzip  on;

좋은 웹페이지 즐겨찾기