>백엔드 개발 >PHP 튜토리얼 >최대의 캐싱을 위해 바니시 및 CloudFlare를 사용하는 방법

최대의 캐싱을 위해 바니시 및 CloudFlare를 사용하는 방법

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌원래의
2025-02-08 09:48:13426검색

How to Use Varnish and Cloudflare for Maximum Caching

코어 포인트

바니시 및 클라우드 플레어의 공동 작업은 웹 사이트 캐싱 기능을 극대화하고 로딩 속도 및 사용자 경험을 크게 향상시킵니다. Varnish는 강력한 캐시 된 HTTP 리버스 프록시이며 CloudFlare는 성능과 보안을 제공하는 전 세계적으로 분산 된 프록시 서버 네트워크입니다.

바니시 설치 및 구성에는 서버 기본 포트를 8080으로 변경하고 기본 포트를 및 로 교체하는 것이 포함됩니다. 변경 사항이 적용되도록 바니시와 Nginx를 다시 시작해야합니다.
    CloudFlare 설정은 계정 및 도메인 이름을 등록해야합니다. 도메인 이름 서버는 CloudFlare의 이름 서버를 가리 키도록 업데이트되어야하므로 CloudFlare는 도메인 이름을 완전히 제어합니다. CloudFlare의 자동 압축 및 로켓 로켓로드 도구는 웹 사이트를 더욱 최적화합니다.
  • 다른 조정은 Favicon 추가, Nginx 최적화 적용 및 바니시와 HTTP/2를 활성화하는 것과 같은 성능을 더욱 향상시키기 위해 이루어질 수 있습니다. 그러나 Varnish 및 Cloudflare는 효과적으로 협력하고 이중 캐싱과 같은 잠재적 인 문제를 피하기 위해 신중하게 구성되어야합니다.
  • /etc/default/varnish 이 기사는 성능 벤치마킹 및 최적화를위한 샘플 응용 프로그램 (Multi-Image Gallery 블로그) 구축에 관한 일련의 기사의 일부입니다. (여기에서 저장소를 봅니다.) /lib/systemd/system/varnish.service 이 보고서에서 볼 수 있듯이 웹 사이트의 로그인 페이지는 매우 빠르게로드되어 전체적으로 점수를 매기지만 다른 캐시 계층을 사용하고 CDN을 사용하여 실제로 좋은 성능을 얻을 수 있습니다.
  • GTMetrix 및 성능을 측정하고 디버깅하는 데 사용할 수있는 기타 도구에 대해 자세히 알아 보려면 향상된 페이지로드 성능 : Pingdom, Yslow 및 Gtmetrix
  • 를 참조하십시오.
  • 이전 바니시 기사에서 배운 내용과 CDN 소개 및 CloudFlare 기사 소개에서 얻은 지식을 사용하여 서버 컨텐츠 전달을 진정으로 조정하십시오.
  • 바니시
  • 바니시는 일반 서버 전에 슈퍼 캐시가되기 위해 만 만들어집니다.
참고 : Nginx 자체가 꽤 좋은 서버라는 점을 감안할 때 사람들은 일반적으로 둘 다보다는 하나를 선택합니다. 동시에 두 가지 모두에 해를 끼치지는 않지만 캐시 고장 문제에 대해 조심해야합니다. 다른 캐시가 업데이트 될 때 캐시 중 하나의 캐시가 오래 지속되지 않도록 둘 다 올바르게 설정해야합니다. 이로 인해 다른 컨텐츠가 다른 방문자에게 표시 될 수 있습니다. 이 항목을 설정하는 것은이 기사의 범위를 벗어나며 향후 안내서에 설명됩니다.

우리는 다음을 수행하여 바니시를 설치할 수 있습니다 Ubuntu의 현재 저장소 목록에는 바니시 5가 없으므로 추가 리포지토리가 필요합니다. 파일 가 존재하지 않으면 작성하십시오. 다음을 추가하십시오

<:> 그런 다음 실행 :
<code>curl -L https://packagecloud.io/varnishcache/varnish5/gpgkey | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y apt-transport-https</code>
결과는 다음과 비슷해야합니다

그런 다음 서버의 기본 포트를 8080으로 변경합니다. 바니시는 포트 80에 있고 필요에 따라 요청을 8080으로 전달하기 때문에이 작업을 수행합니다. 이 시리즈의 시작과 같이 홈스테드에서 지역 개발을 수행하는 경우 편집 해야하는 파일은 에 있습니다. 그렇지 않으면

에있을 수 있습니다.
<code>deb https://packagecloud.io/varnishcache/varnish5/ubuntu/ xenial main
deb-src https://packagecloud.io/varnishcache/varnish5/ubuntu/ xenial main</code>

다음은 를 편집하고 첫 번째 줄 (6081)의 기본 포트를 80 : 로 교체하여 바니시 자체를 구성합니다. /etc/nginx/sites-available/homestead.app /etc/nginx/sites-available/default :

에서도 동일한 작업이 필요합니다
<code>sudo apt-get update
sudo apt-get install varnish
varnishd -V</code>
마지막으로, 우리는 바니시와 nginx를 다시 시작하여 변경 될 수 있습니다.

마지막 명령은 이전에 편집 한 Varnish.Service Daome 설정을 다시로드하는 것입니다. 그렇지 않으면 /etc/default/varnish 파일의 변경 사항 만 고려합니다. 현재 오류가 있으므로 Varnish는 포트가 수행되지 않으면 포트를 올바르게 해제하지 않으므로 정지 프로세스를 시작해야합니다.

결과를 ​​이전 결과와 비교하면 로그인 페이지가 매우 최적화되었으므로 차이가 작다는 것을 알 수 있습니다.
<code>$ varnishd -V
varnishd (varnish-5.2.1 revision 67e562482)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2015 Varnish Software AS</code>

/lib/systemd/system/varnish.service

노트 두 개의 낮은 점수는 주로 "일관된 URL에서 서비스를 제공하지 않았기 때문에"gtmetrix가 말합니다.
<code>server {
    listen 8080 default_server;
    listen [::]:8080 default_server ipv6only=on;</code>

이것은 갤러리를 채우기 위해 임의의 이미지를 사용하고 임의의 샘플이 작기 때문에 발생하므로 일부 이미지 중 일부는 반복적으로 나타납니다. 이것은 훌륭하고 웹 사이트가 제작에 들어간 후에는 문제가되지 않습니다. 실제로 이것은 생산에서 웹 사이트의 기본 점수가 개발보다 나은 경우 드문 경우입니다.

<code>DAEMON_OPTS="-a :80 \
   -T localhost:6082 \
   -f /etc/varnish/default.vcl \
   -S /etc/varnish/secret \
   -s malloc,256m"</code>
CloudFlare

다음, CloudFlare를 설정합시다. 먼저 계정을 등록합시다 : /etc/default/varnish

CloudFlare는 일부 DNS 설정을 적용해야하므로 도메인 이름을 IP 주소에 첨부해야합니다 (즉, 현재 테스트에서했던 대상 서버의 IP 주소 만 사용할 수는 없으므로 우리는해야합니다. 이 목적으로 데모 도메인 이름을 등록하십시오. 현재 이전 도메인 이름 Caimeo.com을 사용할 수 있지만 먼저 도메인 이름을 DigitalOcean 드롭의 IP 주소에 연결하려면 레코드를 사용해야합니다.

그런 다음 CloudFlare가 기존 레코드를 스캔하여 복사하여 시스템이 모든 레코드를 인식하지 못하면 누락 된 레코드를 추가 할 수 있습니다.

이 프로세스가 끝나면 원래 레지스트라의 도메인 이름 서버를 클라우드 플레어의 이름 서버를 가리 키도록 업데이트해야합니다. 이 시점에서 CloudFlare는 도메인 이름을 완전히 제어합니다 (가능한 모든 방문자에게 퍼지는 데 최대 24 시간이 걸릴 수 있음). How to Use Varnish and Cloudflare for Maximum Caching CloudFlare 대시 보드를 사용하여 주어진 도메인 이름에 적용되는 계정 레벨 및 설정을 볼 수 있습니다.

서비스가 활성화 된 후 새로운 gtmetrix 결과를 이전 결과와 비교할 수 있습니다.

Yslow는 지금 우리를 6% 선호하지만 CloudFlare 통합이 우리 웹 사이트를 23% 줄이기 때문에 더 많은 일을 할 수있는 것 같습니다. How to Use Varnish and Cloudflare for Maximum Caching 먼저,자가 운동 (CloudFlare 대시 보드에서 속도로)을 켜고 캐시를 완전히 지우십시오 (캐시 아래). 그런 다음 비교하기 전에 캐시가 올바르게 예열되도록 테스트를 몇 번 실행합니다.

훨씬 낫다! 몇 번의 추가 테스트 실행은 원래 1.4 초 적재 시간에 더 가까워 질 수 있지만 CloudFlare의 로켓 로켓로드 도구도 살펴 보겠습니다. 베타 단계에 있으며 모든 JavaScript (외부 파일)를 번들로 찾아서 해당 파일을 비동기로로드 할 수 있습니다. 그런 다음 원격 서버에서 리소스를 다시 정리하지 않고 브라우저에서 이러한 리소스를 브라우저에 캐시합니다. 여기를 비교하십시오.

How to Use Varnish and Cloudflare for Maximum Caching

슬프게도, 이것은 이상적이지 않습니다. Yslow는 압축이 더 좋고 요청이 적기 때문에 우리를 선호하지만, 이러한 도구는 이전에 더 잘 작동 한 특정 설정을 잘못 구성하는 것으로 보입니다. 끄고 캐시를 지우겠습니다. 이전 설정이 더 좋습니다.

기타 가능한 조정

Favicon을 잊지 마십시오!

Favicon 추가는 항상 좋은 생각입니다. 404 개의 요청이 적고 브라우저에서 더 좋아 보입니다. 또한 폭포 다이어그램은 약 330 밀리 초의 약 1.6 초가 Favicon을 기다리는 데 사용된다는 것을 분명히 알려줍니다!

How to Use Varnish and Cloudflare for Maximum Caching

성공! Favicon을 추가 한 후 300 밀리 초로 줄였습니다.

nginx 조정 당신은 nginx 최적화를 건너 뛰고 나서이 게시물에 올 것입니다. 기술을 적용하는 것이 좋습니다. 이 게시물에서 수행 된 조정은 실제로 웹 사이트의 라이브 버전과 게시물과 다른 서버에 적용되었습니다. 여기서 조정 된 바니시와 nginx는 더 나은 결과를 얻을 것입니다 :

http/2

<code>curl -L https://packagecloud.io/varnishcache/varnish5/gpgkey | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y apt-transport-https</code>
http/2를 활성화하기 위해 바니시를 사용하는 것을 고려하십시오. 폭포 다이어그램에서 이러한 막힘을 볼 수 있습니까?

How to Use Varnish and Cloudflare for Maximum Caching

이것은 한 번에 여러 곳을로드하고 다른 파일은 이전 파일이로드 될 때까지 기다립니다. HTTP/2를 사용하면이 문제가 사라지고 전체 웹 사이트가 더 빠르게로드되어 동일한 연결을 통해 여러 파일을 다운로드합니다. 한 가지주의 사항은 웹 사이트에 인증서가 필요하다는 것입니다. 요즘 Let 's Encrypt를 사용하는 것은 구현하기가 매우 쉽습니다. 또 다른 경고는 HTTP/2 모듈을 포함하는 Nginx로 재건해야한다는 것입니다. 서버에서 약간의 조정이 필요합니다. 또 다른 경고는 HTTP/2에 대한 바니시지지가 여전히 베타에 있고 지나치게 의존해서는 안된다는 것입니다.

바니시 및 http/2를 구성하는 방법을 배우려면이 자습서를 참조하십시오.

결론

우리는 Varnish를 추가 캐싱 레이어로, CloudFlare의 무료 계획으로 사용하여 GTMetrix 점수를 크게 향상 시켰습니다. 우리의 최적화 프로세스는 간단한 응용 프로그램에서는 너무 많은 시간이 될 수 있지만, 첫날부터 우리의 응용 프로그램은 서버의 단위 10 달러로 충돌하지 않고 초당 수십만 명의 사용자를 처리 할 수 ​​있다는 것이 알려져 있습니다. .

우리가 단계를 놓치고 우리가 할 수있는 다른 성능 팁을 인식한다면, 우리에게 알려주십시오! How to Use Varnish and Cloudflare for Maximum Caching 바니시 및 CloudFlare를 사용한 최대 캐싱

바니시와 클라우드 플레어를 조합하여 사용하면 주요 이점은 무엇입니까?

Varnish 및 CloudFlare 사용의 주요 이점은 웹 사이트의 캐싱 기능을 최대화하는 것입니다. Varnish는 웹 사이트 속도를 최대 1000%까지 증가시킬 수있는 강력한 캐시 된 HTTP 리버스 프록시이며, CloudFlare는 웹 사이트의 성능 및 보안을 제공 할 수있는 전 세계적으로 분산 된 프록시 서버 네트워크입니다. 결합하면 웹 사이트 로딩 속도를 크게 높이고 사용자 경험을 향상 시키며 SEO 순위를 향상시킬 수 있습니다.

바니시는 CloudFlare와 어떻게 작동합니까?

바니시는 웹 사이트의 정적 컨텐츠를 캐싱하고 방문자가 사용할 수 있도록 CloudFlare와 함께 작동합니다. 방문자가 페이지를 요청하면 바니시는 캐시 버전의 페이지가 있는지 확인합니다. 그렇다면 방문자에게 캐시 된 페이지를 제공합니다. 그렇지 않은 경우 서버에서 페이지를 가져 와서 캐싱 한 다음 방문자에게 제공합니다. 반면에 CloudFlare는 방문자와 바니시 사이의 역 프록시 역할을합니다. 추가 캐싱을 제공하고 악의적 인 트래픽으로부터 웹 사이트를 보호합니다.

바니시 캐시 대신 CloudFlare를 사용할 수 있습니까?

CloudFlare는 캐싱 기능을 제공하지만 바니시 캐시를 직접 교체 할 수는 없습니다. Varnish Cache는 동적 및 콘텐츠가 풍부한 웹 사이트를 위해 설계된 강력한 HTTP 가속기입니다. 매우 유연하며 특정 요구에 맞게 사용자 정의 할 수 있습니다. 반면에 CloudFlare는 캐싱을 포함한 다양한 서비스를 제공하는 CDN 서비스이지만 바니시만큼 사용자 정의 할 수는 없습니다. 따라서이 둘을 결합하여 최상의 결과를 얻을 수 있습니다.

CloudFlare 및 Varnish를 구성하는 방법은 무엇입니까?

바니시와 함께 CloudFlare를 사용하는 데 여러 단계가 필요합니다. 먼저 서버에 광택을 설치하고 구성해야합니다. 그런 다음 바니시 작업을 위해 CloudFlare를 설정해야합니다. 여기에는 CloudFlare를 가리키기 위해 DNS 설정 변경 및 CloudFlare 구성 웹 사이트 컨텐츠를 캐시하고 바니시로 트래픽을 전달하는 것이 포함됩니다.

터 펜틴이란 무엇이며 바니시 및 클라우드 플레어와 어떤 관련이 있습니까?

Turpentine은 마젠토 확장으로 마젠토와 바니시 사이의 호환성을 향상시킵니다. Magento 매장을위한보다 강력하고 유연한 캐싱 솔루션을 제공합니다. CloudFlare와 직접적인 관계는 없지만 Turpentine을 바르노시로 사용하면 Magento Store의 성능을 향상시킬 수 있으며 Cloudflare는 이러한 성능을 더욱 향상시킬 수 있습니다.

CloudFlare의 페이지 규칙을 바니시와 함께 사용하는 방법은 무엇입니까?

CloudFlare의 페이지 규칙을 사용하면 CloudFlare가 웹 사이트의 다른 부분을 처리하는 방법을 제어 할 수 있습니다. 이 규칙을 사용하여 바니시의 캐싱 기능을 향상시킬 수 있습니다. 예를 들어, 특정 페이지의 CloudFlare의 캐시를 우회하는 규칙을 만들 수있어 바니시가 해당 페이지의 캐시를 처리 할 수 ​​있습니다.

WordPress 웹 사이트에 Varnish 및 CloudFlare를 사용할 수 있습니까?

예, WordPress 웹 사이트에는 바니시 및 CloudFlare를 사용할 수 있습니다. Varnish와 CloudFlare는 WordPress 호환 가능하며 WordPress 웹 사이트의 성능을 크게 향상시킬 수 있습니다.

바니시와 CloudFlare를 사용하는 것은 SEO에 어떤 영향을 미칩니 까?

Varnish와 CloudFlare를 사용하면 SEO에 긍정적 인 영향을 미칩니다. 웹 사이트의로드 속도를 높이면 사용자 경험을 향상시키고 SEO 순위를 향상시킬 수 있습니다. Google은 웹 사이트 속도가 알고리즘이 페이지 순위를 매기는 데 사용하는 신호 중 하나라고 지적했습니다.

바니시와 클라우드 플레어를 조합 할 때 잠재적 인 문제는 무엇입니까?

바니시와 클라우드 플레어를 사용하는 데있어 잠재적 인 문제는 이중 캐싱, 즉 바니시 및 클라우드 플레어 캐시가 동일한 컨텐츠를 캐시 할 수 있다는 것입니다. 이로 인해 방문자에게 구식 콘텐츠가 제공 될 수 있습니다. 이를 피하려면 바니시 및 CloudFlare가 효과적으로 함께 작동하도록 신중하게 구성해야합니다.

바니시 및 CloudFlare의 문제를 해결하는 방법은 무엇입니까?

Varnish 및 CloudFlare와 관련된 문제 해결 문제는 두 서비스의 구성을 확인하고 서버 로그 확인 및 VarnishLog 및 VarnishStat와 같은 도구를 사용하는 것이 포함됩니다. 여전히 문제가있는 경우 바니시 및 클라우드 플레어 커뮤니티의 도움을 받거나 지원 팀에 문의 할 수 있습니다.

위 내용은 최대의 캐싱을 위해 바니시 및 CloudFlare를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.