깊이 파고 들 어 Nginx 의 2 [기본 설정]

6461 단어
이 블 로그 부터 Nginx 의 프로필 nginx. conf 의 일반적인 설정 에 대해 상세 하 게 설명 하고 첨부 파일 형식 으로 실제 프로필 내용 을 보 여 줍 니 다.
   
user  nick excelsoft;

      설명: 루트 계 정 으로 실 행 될 때 워 커 프로 세 스 가 속 한 사용자 / 그룹 을 설정 합 니 다.
 
worker_processes  2;

      설명: 워 커 프로 세 스 의 수 를 설정 합 니 다. 일반적으로 CPU 커 널 수 와 일치 하 며 2 배로 설정 하여 성능 을 최적화 할 수 있 습 니 다.  기타:    CPU 커 널 보기: cat / proc / cpuinfo | grep processor   쌍 핵 이면 표시:      processor : 0      processor : 1
 
error_log  /opt/nginx/logs/error.log notice;

      설명: 오류 로그 의 경로, 단 계 를 지정 합 니 다. 모든 단 계 는 debug, info, notice, warn, error, crit 를 포함 합 니 다.
 
pid  /opt/nginx/logs/nginx.pid;

      설명: nginx 가 시 작 될 프로 세 스 파일 을 지정 합 니 다.  기타:   1. nginx 가 시 작 될 때 이 파일 의 쓰기 권한 을 가 져 와 현재 프로 세 스 (master process) 의 pid 를 nginx. pid 파일 에 기록 합 니 다.   2. nginx 가 시작 되면 이 파일 은 읽 을 수 있 는 것 이 되 고 다시 쓸 수 없 으 며 nginx 의 중복 시작 을 피 할 수 있 습 니 다.   3. nginx. pid 의 파일 내용 은 현재 프로 세 스 의 pid 이기 때문에 이렇게 닫 을 수 있 습 니 다.       kill `cat /opt/nginx/logs/nginx.pid`     nginx 의 프로 세 스 번 호 를 볼 필요 가 없습니다: ps - ef | grep nginx
 
worker_rlimit_nofile  65535;

      설명: nginx 프로 세 스 가 열 수 있 는 최대 파일 수 를 설정 합 니 다.  기타:   1. 기본적으로 nginx 프로 세 스 가 열 수 있 는 파일 수 는 현재 운영 체제 에 한 정 됩 니 다.   2. 시스템 의 최대 파일 수 보기: 현재 CentOS 는 1024 입 니 다.    ulimit -a    ulimit -n
 
 events {
    use  epoll;
    worker_connections  65535;
}

      설명:   1. 네트워크 IO 모델 설정:     epoll: Linux 커 널 2.6 이상 버 전 사용 가능, Linux 버 전 보기: cat / proc / version   표준 select 모드 와 비교 하면 처리 시간 이 더욱 짧 고 데이터 베이스 와 유사 한 색인 체 제 를 사용 하여 공간 으로 시간 을 바 꿉 니 다.     kqueue: FreeBSD 시스템 에 적 용 됩 니 다.   2. worker_connections: 단일 워 커 프로 세 스 가 허용 하 는 최대 병렬 연결 수 입 니 다.     이론 적 으로, 모든 nginx 서버 의 최대 연결 수 는 workerprocesses * worker_connections,    그러나 nginx 가 스케줄 을 진행 할 때 사용자 가 워 커 프로 세 스에 요청 한 것 이 고 르 지 않 아 최대 치 에 도달 할 수 없습니다.
 
charset  utf-8;

      설명: http 역할 도 메 인, 인 코딩 형식 을 설정 하고 일치 하지 않 게 설정 할 수 있 습 니 다.
 
log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for" '
                    '"$sent_http_content_type" "$request_time"'; 

      설명: http 역할 영역.   1. 이 로그 형식 은 access 이름 으로 정의 합 니 다.   2. 로그 형식: 기 존 옵션    $remote_addr: 클 라 이언 트 IP 주소, nginx 를 사용 하여 역방향 프 록 시 를 진행 하면 nginx 서버 의 주 소 를 가 져 옵 니 다.  
    $remote_user: 클 라 이언 트 사용자 이름.     $time_local: 클 라 이언 트 가 방문 할 때의 로 컬 시간 입 니 다.    [21/Jun/2014:23:35:19 +0800]    $request: 요청 방식, 경로, 프로 토 콜.    [GET /html/ HTTP/1.1]    $status: 상태 코드 요청, 200 성공.    $body_bytes_sent: 클 라 이언 트 에 보 내 는 파일 의 주체 크기 입 니 다.    [49]    $http_referer: 어느 페이지 에서 연결 되 었 는 지 기록 합 니 다.    $http_user_에이전트: 클 라 이언 트 브 라 우 저.    $http_x_forwarded_for: 역방향 에이 전 트 를 사용 한 후 실제 클 라 이언 트 IP 주소 입 니 다.   3. 로그 형식: 추가 옵션    $sent_http_content_type: 응답 하 는 내용 형식 입 니 다.    [text/html; charset=utf-8]    $request_time: 사용자 가 요청 한 시간 을 처리 합 니 다. 요청 을 받 고 응답 을 되 돌려 주 는 시간 을 포함 합 니 다.    [0.000]
 
access_log  /opt/nginx/logs/access.log access;

      설명: http 역할 영역, 로그 파일 의 위 치 를 지정 합 니 다.
 
sendfile  on;

      설명: http 역할 도 메 인, Liux 시스템 의 제로 복사 (zero copy) 기능 을 열 지 여부, 일반적인 응용 에 대해 on 으로 설정 합 니 다.    다운로드 (또는 대량의 그림 표시) 등 대량의 디스크 IO 와 관련 된 작업 을 off 로 설정 하면 데이터 복사 가 효과적으로 줄 어 들 수 있 습 니 다.
  
tcp_nopush  on;

      설명: http 역할 영역, 기본 값 은 off 입 니 다. 작은 패 킷 을 조립 하여 보 내 고 대량의 패 킷 으로 인 한 네트워크 체증 을 피 합 니 다.
 
tcp_nodelay  on;

      설명: http 역할 영역, 응답 지연 없 음 설정, 기본 값 은 on. 고 버 전의 Linux 시스템 허용 및 tcpnopush 를 동시에 사용 합 니 다.
 
keepalive_timeout  65;

      설명: http 역할 영역, 연결 시간 초과 설정 65s   1. 대량의 그림 표시, 큰 파일 업로드 등 이 있 으 면 큰 값 으로 설정 합 니 다.   2. 악의 적 인 연결 점용 을 피하 기 위해 너무 크게 설정 해 서 는 안 됩 니 다.
 
gzip  on;

      설명: http 역할 영역, gzip 압축 기능 오픈.   1. 서버 에서 응답 내용 을 압축 하고 클 라 이언 트 의 브 라 우 저 는 gzip 압축 해제 능력 을 가진다.   2. 압축 비율 이 30% 이상 에 달 하고 전송 대역 폭 을 효과적으로 절약 합 니 다.
 
gzip_min_length  1k;

       설명: 페이지 내용 이 1k 이상 일 때 만 압축 을 하고 내용 이 너무 적 을 수록 압력 이 커지 는 현상 을 피한다.
 
gzip_buffers  8 32k;

   설명: 압축 할 때 필요 한 버퍼 크기 로 큰 파일 을 잃 어 버 리 지 않도록 합 니 다. 모두 8 개, 각각 32k 입 니 다.
 
gzip_http_version  1.1;

   설명: 기본 값 은 HTTP / 1.1 프로 토 콜 입 니 다. 초기 브 라 우 저 는 gzip 기능 을 지원 하지 않 을 수 있 습 니 다.
 
gzip_comp_level  3;

   설명: 압축 비율 을 설정 하고 범 위 는 1 - 9 이 며 CPU 의 성능 에 영향 을 주지 않도록 너무 크게 설정 하면 안 됩 니 다.
     
gzip_types  text/plain text/css text/javascript application/x-javascript application/xml;

   설명: 압축 된 파일 형식   1. gzip 는 기본적으로 text / html 를 압축 하기 때문에 지정 하지 않 아 도 됩 니 다.   2. js: 전통 적 인 표준 형식 은 text / javascript 이지 만 js 는 일반 텍스트 파일 이 아 닙 니 다.
      응용 프로그램 / 자 바스 크 립 트 를 추천 하지만, 사실 응용 프로그램 / 자 바스 크 립 트 는 좋 은 지원 이 없습니다.
      실제 응용 프로그램 / x - javascript, x 접 두 사 는 experimental 을 표시 합 니 다.
 
gzip_vary  on;

   설명: http 응답 헤드 에 따라 브 라 우 저가 gzip 압축 을 지원 하 는 지 여 부 를 판단 하고 지원 하지 않 으 면 압축 하지 않 습 니 다.  불 여우 로 보기:    응답 헤더: Vary: Accept - Encoding    요청 헤더: Accept - Encoding gzip, deflate
 
server_names_hash_bucket_size  128;

   설명: 백 엔 드 서버 이름 의 해시 저장 크기 는 서버 가 많 으 면 적당히 늘 릴 수 있 습 니 다.
  
client_header_buffer_size  32k;

   설명: nginx 는 기본적으로 이 크기 의 buffer 를 사용 하여 header 값 을 읽 습 니 다.
 
large_client_header_buffers  4 32k;

   설명: header 가 너무 크 면 이 buffer 를 사용 하여 header 를 읽 습 니 다.
 
client_max_body_size  100m;

   설명: 클 라 이언 트 가 업로드 할 수 있 는 최대 파일 크기 입 니 다.
 
client_body_buffer_size  128k;

   설명: 클 라 이언 트 요청 (POST 를 통 해 보 낸 데이터, 파일 업로드) 을 처리 하 는 buffer 크기,    이 크기 제한 을 초과 하면 임시 파일 에 전부 또는 일 부 를 저장 합 니 다.
 
   시작, 닫 기: su - root
     설정 파일 이 올 바 르 게 수정 되 었 는 지 확인 하기:
/usr/local/nginx/sbin/nginx -t

          부 드 러 운 시작:
kill -HUP `cat /opt/nginx/logs/nginx.pid`

좋은 웹페이지 즐겨찾기