Nginx 웹 사이트 캐 시 만 들 기

5781 단어 nginx웹 캐 시
최근 에 nginx 서버 의 지식 을 계속 배우 고 있 기 때문에 인터넷 에서 자 료 를 조회 하여 스스로 인 스 턴 스 를 만들어 참고 할 수 있 도록 기록 하 였 습 니 다.
다음 에 먼저 완전한 인 스 턴 스 설정 코드 를 드 립 니 다.
# user    nginx    
#user www;

#   nginx    ,(           )
worker_processes  2;

error_log  logs/error.log;

#    
pid        logs/nginx.pid;

events {
	
	#         (     =   *   )
    worker_connections  1024;
}

#  http   
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" "$host"'
	
	#    
	charset utf-8; 

    access_log  logs/access.log main;

	#          ,sendfile    nginx    sendfile       ,         on,
	#             IO     ,    off,        I/O    ,       。  :              off。 
    sendfile        on;

	#       ,    
    keepalive_timeout  180;
	
	#       START
	gzip on;
	gzip_http_version 1.0;
	gzip_comp_level 2;
	gzip_proxied any;
	gzip_min_length 1100;
	gzip_buffers 16 8k;
	gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
	
	# Some version of IE 6 don't handle compression well on some mime-types,
	# so just disable for them
	gzip_disable "MSIE [1-6].(?!.*SV1)";
	
	# Set a vary header so downstream proxies don't send cached gzipped
	# content to IE6
	gzip_vary on;
	#         END
	
	#     START
	
	#    
	proxy_buffering on;
	proxy_cache_valid an 10m;
	#      
	proxy_cache_path data/cache levels=1:2 keys_zone=mycache:8m max_size=1000m inactive=600m;
	#        
	proxy_temp_path data/temp;
	proxy_buffer_size 4k;
	proxy_buffers 100 8k;
	
	#     END
	
	#      
	upstream mbp_mapp.com { #        
		server 127.0.0.1:2048 weight=5;
	}

	#       
    server {
	
		#    
        listen       8086 ;
		
		
		#       ,     
        server_name  localhost;
		
		#  ssl
		#ssl off;
		
		#      
		#ssl_certificate ssl/ca/server.crt;
		#ssl_certificate_key ssl/ca/server.key;
		
		location / { #           
			root   html;
			index  index.html index.htm;
		}
	}
	
	#       
    server {
	
		#    
        listen       8086 ;
		
		access_log logs/mapp.log main;
		error_log logs/mapp_error.log;
		
		#       ,     
        server_name  192.168.31.228;
		
		location / {
			proxy_redirect off;
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://mbp_mapp.com/;
			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection "Upgrade";
			proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
			
			
			#         
			proxy_cache mycache;
			proxy_cache_valid 100;
			
			#    
			proxy_max_temp_file_size 0;
			proxy_connect_timeout 90;
			proxy_send_timeout 90;
			proxy_read_timeout 90;
			proxy_buffer_size 4k;
			proxy_buffers 4 32k;
			proxy_busy_buffers_size 64k;
			proxy_temp_file_write_size 64k;
		}
		access_log logs/localhost_8843_access.log;
	}
}

1. 이 설정 에서 캐 시 에 대한 가장 중요 한 설정 은 다음 과 같 습 니 다 (
버퍼 열기):
    #     START
	
	#    
	proxy_buffering on;
	proxy_cache_valid an 10m;
	#      
	proxy_cache_path data/cache levels=1:2 keys_zone=mycache:8m max_size=1000m inactive=600m;
	#        
	proxy_temp_path data/temp;
	proxy_buffer_size 4k;
	proxy_buffers 100 8k;
    #     END
이 프로필 은 주로 캐 시 를 열 고 캐 시 크기 를 설정 합 니 다. 다음은 캐 시 속성 에 대해 설명 하 겠 습 니 다.
proxy_buffering
proxybuffering on|off
기본 값: proxybuffering on
문맥: http, server, location
이 명령 은 백 엔 드 에서 프 록 시 서버 의 응답 내용 버퍼 를 엽 니 다.
버퍼 가 열 리 면 nginx 는 프 록 시 백 엔 드 서버 가 가장 빠 른 속도 로 응답 할 것 이 라 고 가정 하고 내용 을 명령 proxy_buffer_size 에 저장 합 니 다. 화해시키다  proxy_buffers 지정 한 버퍼 안에 있 습 니 다.
응답 내용 을 메모리 에 넣 을 수 없다 면 일부 내용 은 디스크 에 기 록 됩 니 다.
버퍼 가 닫 히 면 응답 내용 은 가 져 온 내용 에 따라 클 라 이언 트 로 즉시 동기 화 됩 니 다.
nginx 는 프 록 시 전체 응답 내용 의 크기 를 계산 하지 않 습 니 다. nginx 는 서버 에서 받 아들 일 수 있 는 최대 데 이 터 는 명령 proxy_buffer_size 에 의 해 지정 되 었 습 니 다.
proxy_cache_유효한 문법: proxycache_valid reply_code [reply_code ...] time; 기본 값: None 사용 필드: http, server, location 은 응답 에 따라 캐 시 시간 을 설정 합 니 다.
proxy_cache_path
proxycache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time] [max_size=size];
기본 값: None
사용 필드: http
명령 은 캐 시 경로 와 다른 매개 변 수 를 지정 하고 캐 시 된 데 이 터 는 파일 에 저 장 됩 니 다.캐 시 된 파일 이름과 key 는 프 록 시 URL 의 MD5 코드 입 니 다.levels 매개 변수 지정 캐 시 하위 목록 기록 수
proxy_buffer_size
proxybuffer_size the_size
기본 값: proxybuffer_size 4k/8k
문맥: http, server, location
이 명령 은 버퍼 크기 를 설정 합 니 다. 프 록 시 백 엔 드 서버 에서 받 은 응답 내용 을 먼저 읽 고 여기에 놓 습 니 다.
작은 응답 header 는 보통 이 부분 응답 내용 에 있 습 니 다.
기본적으로 이 버퍼 크기 는 명령 과 같 습 니 다.  proxy_buffers 설 치 된 것;하지만 더 작 게 설정 할 수 있 습 니 다.
proxy_buffers
proxybuffers the_number is_size;
기본 값: proxybuffers 8 4k/8k;
문맥: http, server, location
이 명령 은 버퍼 의 크기 와 수량 을 설정 합 니 다. 프 록 시 백 엔 드 서버 에서 받 은 응답 내용 을 여기에 배치 합 니 다. 기본 적 인 상황 에서 버퍼 의 크기 는 페이지 크기 와 같 습 니 다. 4K 일 수도 있 고 8K 일 수도 있 습 니 다. 이것 은 플랫폼 에 달 려 있 습 니 다.
2. 가상 서버 에 캐 시 사용
#         
proxy_cache mycache;
proxy_cache_valid 100;
그리고 서버 에 접근 하면 data / cache 폴 더 에 파일 이 하나 더 있 는 것 을 발견 할 수 있 습 니 다. 파일 은 다음 과 같 습 니 다.
캐 시 파일 내용 을 보면 파일 내용 에 페이지 정보 가 캐 시 되 어 있 습 니 다. 구체 적 으로 다음 과 같 습 니 다.
그러나 이 페이지 는 바로 내 가 방문 한 인터페이스 이다. 여기 서 나 는 나의 페이지 원본 코드 를 주지 않 는 다.
여기까지 Nginx 캐 시 페이지 정 보 를 사용 하면 됩 니 다.구체 적 인 명령 의 용법 은 나중에 업 데 이 트 됩 니 다.
질문 이 있 으 시 면 댓 글 을 환영 합 니 다!

좋은 웹페이지 즐겨찾기