Nginx 프로필 최적화 상세 설명

Nginx 프로필 최적화 상세 설명
nginx 를 최적화 하 는 것 은 중점 이자 난점 이다. 여기 서 자주 사용 하 는 최적화 조치 와 관련 매개 변수 가 대표 하 는 뜻 을 제시한다.일부 매개 변 수 는 회사 서버 와 결합 하여 설정 해 야 한다.
전역 변수의 최적화:
#  Nginx         user  www  www;
#    ,      cpu     
worker_processes  8;
#       cpu。
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
#       nginx              ,             (ulimit -n) nginx     ,
#  nginx           ,     ulimit -n      。
worker_rlimit_nofile  102400;
#       PID  
error_log  /usr/local/nginx/logs/error.log; 
#        ,[ debug | info | notice | warn | error | crit ]      。
#  pid  
pid        /usr/local/nginx/nginx.pid;

events {
use   epoll;             	
#epoll     IO(I/O Multiplexing)      ,      nginx   。
worker_connections  10240;	
#    worker process           (     =   *   )
multi_accept  on; 
#         .
}
#  http   ,                  
http {
#  mime  ,   mime.type    
include       mime.types;
#     MIME  ;default_type  application/octet-stream;
#      
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$request_time"';
#        
access_log    /usr/local/nginx/log/nginx/access.log;
sendfile      on;
#sendfile      nginx      sendfile   (zero copy   )     ,          on
#             IO     ,    off,        I/O    ,     uptime。
#autoindex  on;  
#        ,       ,    。
tcp_nopush on;   
#      ,   sendfile        。
keepalive_timeout  120;
#keepalive    ,                 ,             ,
#keepalive-timeout              。(       、CPU、  、  )
tcp_nodelay   on; 
#          ,                  ( upstream             )
#  gzip  
gzip on;
#              。
gzip_min_length  1k;
#                 gzip        。 
#4 16k   16k   ,         16k    4     。
gzip_buffers     4 16k;
#    http         。          。
gzip_http_version 1.1;
#      ,   9,   ,       ,CPU    。
#   ,  CPU   。
gzip_comp_level  6; 
#       。
gzip_types       text/plain application/x-javascript text/css application/xml;
# http      “Vary: Accept-Encoding”,        ,         ,     
#             ,        HTTP    ,      
gzip_vary on;
# IE6    ,  IE6      。
#gzip_disable "MSIE [1-6]."
client_max_body_size 10m;      
#                
client_body_buffer_size 128k; 
#                  .
proxy_connect_timeout 90;      
#nginx            (      )
proxy_send_timeout 90;         
#           (      )
proxy_read_timeout 90;         
#     ,         (      )
proxy_buffer_size 4k;          
#       (nginx)             
proxy_buffers 4 32k;           
#proxy_buffers   ,     32k    ,    
proxy_busy_buffers_size 64k;   
#        (proxy_buffers*2)
large_client_header_buffers  4 4k;
#                  number(  )      size(  )。 
#HTTP                 ,  nginx    414 (Request-URI Too Large)    。 
#                    ,  nginx    400 (Bad Request)    。
client_header_buffer_size 4k;
#             ,                 ,               1k
#              1k,           。         getconf PAGESIZE  。
open_file_cache max=102400 inactive=20s;
#            ,        ,max      ,          ,inactive                   。
open_file_cache_valid 30s;
#                   。open_file_cache_min_uses 1;
#open_file_cache    inactive              ,        ,               ,   ,        inactive
#        ,         
include vhosts.conf;

가상 호스트 프로필 최적화
upstream backend {        
        #          。   30            
		server   127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
		server   127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s;
		server   127.0.0.1:8082 weight=1 max_fails=2 fail_timeout=30s;
		server   127.0.0.1:8083 weight=1 max_fails=2 fail_timeout=30s;
	}   
	#      
	server {		#  80  
        listen       80;        #    www.abc.com  
        server_name  www.abc.com;        #            
        access_log  logs/access.log  main;
			root   /data/webapps/www;  #               
        index index.php index.html index.htm;   #           
        #    
        location ~ /{
          root   /data/webapps/www;      #               
          index index.php index.html index.htm;   #           
          
          #            .
          proxy_next_upstream http_502 http_504 error timeout invalid_header;		 
	  #          502、504、       ,        upstream             ,      。
          proxy_redirect off;        
           #                     
          proxy_set_header Host $host;          
          #      IP      X-Real-IP, NginxBackend  $http_x_real_ip         IP
          # Nginx Backend “$remote_addr”            IP;
          proxy_set_header X-Real-IP $remote_addr;          
          #      X-Forwarded-For $remote_addr      ,
          #        X-Forwarded-For $proxy_add_x_forwarded_for $remote_addr。
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;          
          #       HTTP    。        1.0
          proxy_http_version 1.1;
          proxy_set_header Connection "";         
           #                。
          client_max_body_size    100m;          
          #             ,        。
           proxy_pass  http://backend;   
        #         
			error_page   500 502 503 504 /50x.html;  
            location = /50x.html {
            root   html;
        }		#  Nginx    ,          Nginx      。
		location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
		{
			root /data/webapps/www;			
			#expires             3 ,          ,      ,                 ,              。
			expires      3d;
		}       
        #PHP          FastCGI  .   FastCGI    .
        location ~ \.php$ {
            root /root;
            FastCGI_pass 127.0.0.1:9000;
            FastCGI_index index.php;
            FastCGI_param SCRIPT_FILENAME /data/webapps/www$FastCGI_script_name;
            include FastCGI_params;
        }        
        #    Nginx     
        location /NginxStatus {
            stub_status  on;
        }
     }
}

주로 열 린 스 레 드 수량, CPU 바 인 딩, 압축 시작, 프 록 시가 있 으 면 백 엔 드 서버 의 상호작용 시간 등 최적화 와 관련된다.

좋은 웹페이지 즐겨찾기