nginx 설정 및 설정 소개
1. Nginx 기본 설정
다음은 Nginx 기본 설정 정보 입 니 다. 설정 경로: / opt / app / nginx / conf / nginx. conf
# Nginx worker
user nobody;
# , cpu
worker_processes 1;
# pid
#nginx error_log ( :debug crit ):
#[ debug | info | notice | warn | error | crit ]
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
#
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access log
#access_log logs/access.log main;
#sendfile nginx sendfile (zero copy ) ,
# , on,
# IO , off,
# I/O , uptime.
sendfile on;
#tcp_nopush on;
#
#keepalive_timeout 0;
keepalive_timeout 65;
# gzip
#gzip on;
server {
listen 80;
server_name localhost;
#
#charset koi8-r;
#
#access_log logs/host.access.log main;
# ,
location / {
root html;
index index.html index.htm;
}
#
#error_page 404 /404.html;
#
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
2. 부분 설정 소개
2.1 worker_프로 세 스 설정
글 의 출처 가 원작 자 를 찾 으 면:
As a general rule you need the only worker with large number ofworker_connections, say 10,000 or 20,000.However, if nginx does CPU-intensive work as SSL or gzipping andyou have 2 or more CPU, then you may set worker_processes to be equalto CPU number.Besides, if you serve many static files and the total size of the filesis bigger than memory, then you may increase worker_processes toutilize a full disk bandwidth.
[Igor Sysoev]
보통 프로 세 스 가 충분 합 니 다. 연결 수 를 크게 설정 할 수 있 습 니 다.SSL, gzip 등 CPU 를 소모 하 는 작업 이 있 고 다 핵 CPU 가 있다 면 CPU 의 수 와 같 게 설정 할 수 있 습 니 다.또는 많은 작은 파일 을 처리 해 야 하고 파일 의 전체 크기 가 메모리 보다 많 을 때 프로 세 스 수 를 증가 시 켜 IO 대역 폭 을 충분히 이용 할 수 있 습 니 다 (주로 IO 작업 에 block 이 있 는 것 같 습 니 다).제 설정 실천 에 따 르 면 서버 는 '여러 개의 CPU + gzip + 사이트 의 총 파일 크기 가 메모리 보다 크다' 는 환경 입 니 다. workerprocesses 는 CPU 개수 의 두 배로 설정 하 는 것 이 좋 습 니 다.
2.2 이벤트 설정
문장 출처
이벤트 모듈 에는 nginx 의 모든 연결 처리 설정 이 포함 되 어 있 습 니 다. 자주 사용 하 는 설정 은 다음 과 같 습 니 다.
events{
use epoll;
worker_connections 20000;
client_header_buffer_size 4k;
open_file_cache max=2000 inactive=60s;
open_file_cache_valid 60s;
open_file_cache_min_uses 1;
}
다음은 use epoll 에 대한 상세 한 설명 입 니 다.epoll 의 I / O 모델 을 사용 합 니 다.nginx 는 select 또는 poll B) 고 효율 이벤트 모델 Kqueue 를 선택 합 니 다. FreeBSD 4.1 +, OpenBSD 2.9 +, NetBSD 2.0 과 MacOS X 에 사 용 됩 니 다. 더 블 프로 세 서 를 사용 하 는 MacOS X 시스템 에서 kqueue 를 사용 하면 커 널 붕 괴 를 초래 할 수 있 습 니 다.Epol: Linux 커 널 2.6 버 전 및 이후 시스템 에 사용 합 니 다. /dev / poll: Solaris 7 11 / 99 +, HP / UX 11.22 + (eventport), IRIX 6.5.15 + 와 Tru 64 UNIX 5.1A + 에 사 용 됩 니 다.Eventport: Solaris 10 에 사용 합 니 다. 커 널 충돌 문 제 를 방지 하기 위해 서 는 보안 패 치 를 설치 하여 Liux 버 전 번 호 를 볼 필요 가 있 습 니 다. cat / proc / version 명령 을 사용 할 수 있 습 니 다.
cat /proc/version
출력 은 다음 과 같 습 니 다.
Linux version 2.6.32-504.23.4.el6.x86_64 ([email protected])
(gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) )
#1 SMP Tue Jun 9 20:57:37 UTC 2015
worker_connections 2000; 작업 프로 세 스 의 최대 연결 수량 이론 적 으로 모든 nginx 서버 의 최대 연결 수 는 workerprocesses*worker_connections worker_processes 가 우리 에 게 다시 main 에서 열 려 있 는 프로 세 스 수 입 니 다.
keepalive_timeout 60; keepalive 시간 초과.http 차원 의 keep - alive 를 말 합 니 다. tcp 의 keepalive 가 아 닙 니 다.
client_header_buffer_size 4k; 클 라 이언 트 가 머리의 버퍼 크기 를 요청 합 니 다. 이것 은 시스템 의 페이지 크기 에 따라 설정 할 수 있 습 니 다. 보통 요청 헤드 의 크기 는 1k 를 초과 하지 않 지만 일반 시스템 의 페이지 는 1k 이상 이 어야 하기 때문에 시스템 페이지 크기 로 설정 합 니 다.시스템 페이지 보기 getconf PAGESIZE 명령 사용 가능
getconf PAGESIZE
입력 은 다음 과 같 습 니 다:
[xxxx nginx]# getconf PAGESIZE
4096
open_file_cache max=2000 inactive=60s; 파일 을 열기 위해 캐 시 를 지정 합 니 다. 기본 값 은 사용 되 지 않 았 습 니 다. max 는 캐 시 최대 수량 을 지정 합 니 다. 파일 을 여 는 것 과 일치 하 는 것 을 권장 합 니 다. inactive 는 얼마 동안 파일 이 요청 되 지 않 은 후에 캐 시 를 삭제 하고 파일 을 여 는 최대 수량 을 main 설정 으로 설정 하 는 worker 를 말 합 니 다.rlimit_nofile 매개 변수 PS: 파일 열기 수 보기 방법:
ulimit -a #open files
open_file_cache_valid 60s; 이것 은 캐 시 를 얼마나 자주 검사 하 는 지 에 대한 유효한 정 보 를 말한다.만약 한 파일 이 inactive 시간 내 에 한 번 도 사용 되 지 않 았 다 면, 그것 은 제 거 될 것 입 니 다.
open_file_cache_min_uses 1; open_file_cache 명령 의 inactive 매개 변 수 는 시간 내 에 파일 의 최소 사용 횟수 입 니 다. 이 숫자 를 초과 하면 파일 설명 자 는 캐 시 에서 열 려 있 습 니 다. inactive 시간 내 에 한 번 도 사용 되 지 않 으 면 삭 제 됩 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.