Nginx 기술 패 치 (2) 명령
단순 명령
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;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.