고성능 정적 파일 캐싱을 위해 Nginx를 사용하는 방법
Nginx는 고성능 및 높은 동시성 기능으로 널리 주목받고 널리 사용되는 경량 오픈 소스 웹 서버입니다. 웹 서버인 것 외에도 Nginx에는 웹 사이트의 액세스 속도와 성능을 크게 최적화할 수 있는 정적 파일 캐싱 기능을 제공하는 중요한 기능이 있습니다. 이 기사에서는 고성능 정적 파일 캐싱을 위해 Nginx를 사용하는 방법을 소개하고 해당 코드 예제를 제공합니다.
server { listen 80; server_name example.com; root /path/to/static/files; location ~* .(jpg|jpeg|png|gif|css|js)$ { expires 30d; access_log off; } }
위 구성에서 listen
은 Nginx가 수신 대기하는 포트를 지정하고 server_name
은 서버의 도메인 이름을 지정합니다. root
는 정적 파일이 있는 루트 디렉터리를 지정합니다. location
지시문은 일치하는 URL 패턴과 해당 처리 매개변수를 지정합니다. 위 구성에서 정규식 ~* .(jpg|jpeg|png|gif|css|js)$
는 jpg, jpeg, png, gif, css 또는 js의 접미사와 일치합니다. 파일의 경우, expires
는 캐시 유효 기간을 30일로 지정하고 access_log off
는 정적 파일에 대한 액세스 로깅을 비활성화합니다. listen
指定了Nginx监听的端口,server_name
指定了服务器的域名。root
指定了静态文件所在的根目录。location
指令指定了匹配的URL模式,以及对应的处理参数。在上面的配置中,通过正则表达式~* .(jpg|jpeg|png|gif|css|js)$
匹配了以jpg、jpeg、png、gif、css或js为后缀的文件,expires
指定了缓存的有效期为30天,access_log off
则禁止了对静态文件的访问日志记录。
location ~* .(jpg|jpeg|png|gif|css|js)$ { expires 30d; access_log off; add_header Cache-Control "public"; add_header Pragma public; etag off; }
在上述示例中,add_header
指令添加了两个头部信息,分别是Cache-Control
和Pragma
。这两个头部信息告诉客户端和其他缓存服务器在一定时间内可以使用缓存的副本。etag off
禁用了Etag头部信息,因为在某些情况下,Etag可能会导致一些兼容性问题。
Cache-Control
和Expires
字段,以及响应内容的大小。如果缓存生效,那么在第一次访问静态文件后,再次请求时会看到Cache-Control
和Expires
的值与上述配置一致,并且响应内容的大小会变得非常小。另外,可以使用命令行工具如curl来查看HTTP响应头部信息。例如,可以执行以下命令来查看一个图片文件的HTTP响应头部信息:
$ curl -I example.com/path/to/image.jpg
如果缓存生效,那么你会在结果中看到类似下面的行:
Cache-Control: public, max-age=2592000 Expires: Thu, 10 Aug 2023 08:16:50 GMT
style.css
,我们可以将其重命名为style.v1.css
$ nginx -s reload
위 예에서 add_header
지시문은 두 개의 헤더 정보, 즉 Cache-Control
및 Pragma
코드를 추가합니다. >. 이 두 헤더는 클라이언트와 다른 캐싱 서버에 캐시된 복사본을 특정 기간 동안 사용할 수 있음을 알려줍니다. etag off
는 Etag 헤더 정보를 비활성화합니다. 경우에 따라 Etag로 인해 호환성 문제가 발생할 수 있기 때문입니다.
정적 파일 캐시가 효과적인지 확인하세요
정적 파일 캐시가 효과적인지 확인하려면 브라우저의 개발자 도구나 명령줄 도구를 사용하여 확인할 수 있습니다. 브라우저의 개발자 도구에서 HTTP 응답 헤더의 Cache-Control
및 Expires
필드와 응답 콘텐츠의 크기를 볼 수 있습니다. 캐시가 적용되면 처음으로 정적 파일에 액세스한 후 Cache-Control
및 Expires
값이 위 구성과 일치하는 것을 확인할 수 있습니다. 다시 요청하면 응답 내용은 크기가 매우 작아집니다.
style.css
가 있다고 가정하면 이름을 style.v1.css
로 바꾸고 Nginx의 구성 파일을 새 파일 이름과 일치하도록 업데이트할 수 있습니다. 이렇게 하면 CSS 파일이 수정될 때마다 파일 이름의 버전 번호만 업데이트하면 됩니다. 🎜🎜🎜또한 Nginx는 서버를 중지하지 않고 구성 파일을 다시 로드할 수 있는 reload 명령도 제공합니다. 예를 들어, 다음 명령을 실행하여 Nginx 구성 파일을 다시 로드할 수 있습니다: 🎜rrreee🎜 이러한 방식으로 Nginx는 구성 파일을 다시 읽고 업데이트된 구성이 즉시 적용됩니다. 🎜🎜요약🎜정적 파일 캐싱을 위해 Nginx를 사용하면 웹 사이트의 성능과 액세스 속도를 크게 향상시킬 수 있습니다. 이 기사에서는 정적 파일 액세스 및 캐싱 기능을 활성화하도록 Nginx를 구성하는 방법을 소개하고 해당 코드 예제 및 확인 방법을 제공합니다. 이 콘텐츠가 귀하의 웹사이트 성능을 최적화하는 데 도움이 되기를 바랍니다. 🎜위 내용은 고성능 정적 파일 캐싱을 위해 Nginx를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!