Nginx proxy cache를 이용하니 이미지 캐시서버 구축이 훨씬 쉬워지네요. 정보
Nginx proxy cache를 이용하니 이미지 캐시서버 구축이 훨씬 쉬워지네요.관련링크
본문
https://www.wsgvet.com/web/243
여기에 정리해뒀습니다.
---
php도 필요없고 그냥 서버에 Nginx 딱 1개만 설치하면 됩니다. (SSL 인증서 발급은 먼저 하시구요)
그리고 설정파일에
proxy_cache_path /var/cache levels=1:2 keys_zone=static:100m max_size=10g inactive=30d;
proxy_cache_key "$scheme$request_method$host$request_uri";
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name cdn.example.com; # 이미지 캐시서버 도메인
server_tokens off;
location ~* \.(?:css|js|gif|png|jpg|jpeg|mp4|webm)$ {
valid_referers none blocked *.example.com example.com; # 본서버 외 불펌금지
if ($invalid_referer) {
return 403;
}
proxy_pass https://example.com; # 본서버 도메인
proxy_cache_valid 200 301 302 600m;
proxy_cache static;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
proxy_cache_revalidate on;
proxy_cache_lock on;
proxy_ignore_headers Set-Cookie;
access_log off;
add_header My-Cache-Status $upstream_cache_status;
add_header my-ray "KR";
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
}
location / {
return 403;
}
ssl_certificate ssl/fullchain.pem; #자신의 인증서 경로로..
ssl_certificate_key ssl/privkey.pem; #자신의 인증서 경로로..
ssl_trusted_certificate ssl/chain.pem; #자신의 인증서 경로로..
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 10s;
}
위와 같이 셋팅하고 Nginx를 재시작해줍니다.
마지막으로 본서버에 가서 캐시하고 싶은 파일들의 경로를 캐시서버 도메인으로 바꿉니다.
그러면 알아서 캐시됩니다.
정말 쉽죠?
도커로 SSL 인증서 자동화까지 합쳐서 스크립트로 만들어봐야겠네요.
!-->
추천
3
3
댓글 8개
와~~~
@선구자 와 좋아요!
갈수록 진화를 하시네요 ㄷㄷㄷㄷㄷ
@뒷집돌쇠 이게 한계인거 같습니다 ㅎㅎㅎ
xetown 언제 저렇게 바뀌었지? ^^;
@BlueAngel 조금 된 것 같습니다. ㅎㅎ
이렇게 하면 캐쉬서버에 이미지가 자동생성도 되는건가요??
@ifelse 네. 프록시 패스로 지나가는데, 한번 지나가면 자동으로 캐시가 생깁니다.