nginx 웹 용기 로 서 의 성능 최적화

최근 에는 nginx 의 높 은 병발 에 푹 빠 져 단순 한 웹 용기 의 높 은 병발 과 대리 로 서 의 높 은 병발 성 조절 을 실현 하 는 박문 을 많이 보 았 다.테스트 학습 을 위해 서 자신 이 centos 가상 컴퓨터 네 대 를 만 들 었 다.
IP:
1,192.168.2.210
2,192.168.2.220
3,192.168.2.230
4,192.168.2.240
우선, 나 는 단순히 nginx 를 웹 용기 로 정적 페이지 를 처리 합 니 다.많은 다른 사람의 변조 경험 을 보 았 습 니 다. Linux 커 널 파라미터 설정 이 있 고 nginx 파라미터 설정 이 있 으 며 pp - fpm 설정 이 있 으 며 nginx 소스 코드 를 수정 하여 재 컴 파일 한 것 이 있 습 니 다.
첫째, nginx 매개 변수 설정
user www www;  #worker     
worker_processes 8; #   CPU    
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000
01000000;
#error_log /www/log/nginx_error.log crit; #       IO       
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile 204800;
events
{
use epoll;
worker_connections 204800;
}
http
{
include mime.types;
default_type application/octet-stream;
charset utf-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 2k;
large_client_header_buffers 4 4k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2
keys_zone=TEST:10m
inactive=5m;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 4k;
fastcgi_buffers 8 4k;
fastcgi_busy_buffers_size 8k;
fastcgi_temp_file_write_size 8k;
fastcgi_cache TEST;
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301 1d;
fastcgi_cache_valid any 1m;
fastcgi_cache_min_uses 1;
fastcgi_cache_use_stale error timeout invalid_header http_500;
open_file_cache max=204800 inactive=20s;
open_file_cache_min_uses 1;
open_file_cache_valid 30s;
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
server
{
listen 8080;
server_name localhost;
index index.php index.htm;
root /www/html/;
location /status
{
stub_status on;
}
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
{
expires 30d;
}
log_format access '$remote_addr -- $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
#access_log /www/log/access.log access;
}
}

정적 자원 에 접근 할 때 workerproccess 와 workerconnections 설정 이 정확 한 전제 에서 성능 향상 에 가장 큰 것 은
open_file_cache max=204800 inactive=20s;
open_file_cache_min_uses 1;
open_file_cache_valid 30s;

이 몇 가지, 캐 시 파일 자원.나 는 ab 로 성능 의 폭발 적 인 증 가 를 테스트 했다. 원래 1000 개의 요청 을 보 내 고 1000 초 를 동시 다발 하 는 데 10 초 걸 렸 는데, 게다가 바로 0.4 가 되 었 다.삼투 율 이 수 십 K 에서 1M 로 바 뀌 었 습 니 다. 저 는 가상 컴퓨터 단일 핵 1G 의 설정 입 니 다...
그럼 PHP 파일 에 접근 할 까요?
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2
keys_zone=TEST:10m
inactive=5m;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 4k;
fastcgi_buffers 8 4k;
fastcgi_busy_buffers_size 8k;
fastcgi_temp_file_write_size 8k;
fastcgi_cache TEST;
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301 1d;
fastcgi_cache_valid any 1m;
fastcgi_cache_min_uses 1;
fastcgi_cache_use_stale error timeout invalid_header http_500;

효율 을 현저히 높 일 수 있다
그리고 Linux 커 널 파라미터 조절 은 주로 네트워크 와 관련 된 것 입 니 다.
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 262144
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.ip_local_port_range = 1024 65000

이 부분 은 역할 이 가장 적 고 성능 공헌 이 거의 없다 고 생각 합 니 다. 제 가 이런 설정 의 의미 가 자신의 환경 과 일치 하지 않 는 이 유 를 이해 하지 못 하 는 것 같 습 니 다.
요약:
nginx 효율 을 높이 는 가장 효과 적 인 방법 은 각종 캐 시 를 여 는 것 입 니 다!!!!!!!!!

좋은 웹페이지 즐겨찾기