Proxy Cache 를 이용 하여 Nginx 가 정적 자원 을 캐 시 합 니 다.
3320 단어 구조 모드
Nginx 는 프 록 시 캐 시 를 통 해 정적 자원 을 캐 시 할 수 있 는 고성능 HTTP 서버 입 니 다.그 원 리 는 정적 자원 을 일정한 규칙 에 따라 로 컬 하 드 디스크 에 존재 하고 메모리 에 자주 사용 하 는 자원 을 캐 시 하여 정적 자원 의 응답 을 가속 화 하 는 것 이다.
프 록 시 캐 시 설정
다음은 nginx 설정 세 션 입 니 다.
proxy_temp_path /usr/local/nginx/proxy_temp_dir 1 2;
#keys_zone=cache1:100m zone cache1, 100MB
#/usr/local/nginx/proxy_cache_dir/cache1 cache1 zone
#levels=1:2 1 , 2 , /usr/local/nginx/proxy_cache_dir/cache1/a/1b
#inactive=1d zone 1 , cache manager
#max_size=10g zone 10GB
proxy_cache_path /usr/local/nginx/proxy_cache_dir/cache1 levels=1:2 keys_zone=cache1:100m inactive=1d max_size=10g;
server {
listen 80;
server_name *.example.com;
# $upstream_cache_status
log_format format1 '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" $upstream_cache_status';
access_log log/access.log fomat1;
#$upstream_cache_status , HIT MISS EXPIRED
add_header X-Cache $upstream_cache_status;
location ~ .(jpg|png|gif|css|js)$ {
proxy_pass http://127.0.0.1:81;
# zone
proxy_cache cache1;
# key
proxy_cache_key $host$uri$is_args$args;
# 200 304 , 10
proxy_cache_valid 200 304 10m;
expires 30d;
}
}
Purge 모듈 설치
Purge 모듈 은 캐 시 를 지 우 는 데 사 용 됩 니 다.
$ wget http://labs.frickle.com/files/ngx_cache_purge-1.2.tar.gz
$ tar -zxvf ngx_cache_purge-1.2.tar.gz
컴 파일 매개 변수 보기
$ /usr/local/nginx/sbin/nginx -V
기 존의 컴 파일 매개 변수 뒤에 추가
--add-module=/usr/local/ngx_cache_purge-1.2
$ ./configure --user=www --group=www --prefix=/usr/local/nginx \
--with-http_stub_status_module --with-http_ssl_module \
--with-http_realip_module --add-module=/usr/local/ngx_cache_purge-1.2
$ make && make install
nginx 를 종료 하고 다시 시작 합 니 다.
$ /usr/local/nginx/sbin/nginx -s quit
$ /usr/local/nginx/sbin/nginx
Purge 설정
다음은 nginx 의 Purge 설정 세 션 입 니 다.
location ~ /purge(/.*) {
# IP
allow 127.0.0.1;
deny all;
proxy_cache_purge cache1 $host$1$is_args$args;
}
캐 시 지우 기
사용 방법:
$ wget http://example.com/purge/uri
이 중
uri
은 정적 자원 의 URI 이 며, 캐 시 된 자원 의 URL 은 http://example.com/js/jquery.js
, 그럼 방문 http://example.com/purge/js/jquery.js
캐 시 를 지 웁 니 다.적중률
다음 코드 를 hit 로 저장 합 니 다.rate.sh:
#!/bin/bash
# author: Jeremy Wei
# proxy_cache hit rate
if [ $1x != x ] then
if [ -e $1 ] then
HIT=`cat $1 | grep HIT | wc -l`
ALL=`cat $1 | wc -l`
Hit_rate=`echo "scale=2;($HIT/$ALL)*100" | bc`
echo "Hit rate=$Hit_rate%"
else
echo "$1 not exsist!"
fi
else
echo "usage: ./hit_rate.sh file_path"
fi
사용 방식
$ ./hit_rate.sh /usr/local/nginx/log/access.log
참고:
http://wiki.nginx.org/HttpProxyModule
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 디자인 모델 구조 모델 - 외관 모델 (Facade)Facade 의 정의: 서브 시스템 의 인터페이스 에 일치 하 는 인터페이스 를 제공 합 니 다. 다음 과 같은 사례 로 데이터 베 이 스 를 조작 합 니 다. 응용 프로그램 에 서 는 항상 데이터 베 이 스 를 조...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.