Skip to content

CloudPanel Varnish Cache Vhost

2022-10-10 20:11:57
#1

Temel bilgiler #


Varnish Cache , sıkıştırılmış Sayfa Kaynağını bellekte depolayarak sitelerinizi hızlandıran önbelleğe alınan bir HTTP ters proxy'sidir . CSS, JS ve Görüntüler gibi
statik dosyalar , NGINX bunları daha hızlı sağladığı için Vernik Önbelleğinde DEPOLANMAZ .

Sitenizi açtığınızda, örneğin www. domain .com, istek , SSL/TLS'nin sonlandırıldığı NGINX'e gider . İstek, Stil Sayfası, Javascript veya Görüntü gibi statik bir dosyaysa , NGINX tarafından hemen teslim edilir . Diğer tüm istekler Varnish Cache'ye (Port 6081 ) iletilir.

Varnish Cache'nin bir istek için bir önbellek girişi varsa , sayfa kaynağı PHP-FPM tarafından işlenmeden hemen bellekten döndürülür .

Önbellek girişi yoksa, istek Varnish Cache tarafından NGINX 8080 numaralı bağlantı noktasına iletilir ve burada PHP Uygulaması tarafından PHP-FPM aracılığıyla işlenir .

Vhost Açıklama #


Aşağıdaki Vhost , WordPress/WooCommerce için kullanılıyor .

1-10 . satırda domain.com için bir yönlendirme gerçekleşir. http ve https'den gelen tüm istekler 301 üzerinden https : //www.domain.com'a yönlendirilir .

CSS, JS ve Images gibi statik dosyalar 97-101 satırında teslim edilir .
Diğer tüm istekler / , satır 79-95 üzerinden gidiyor .

80. satırda {{varnish_proxy_pass}} yer tutucusunu görürsünüz .

Vernik Önbelleği devre dışı bırakıldığında , bu yer tutucu için oluşturulan değer:

proxy_pass http://127.0.0.1:8080;
kopyala
Varnish Cache etkinleştirildiğinde , Varnish Cache Settings'deki Varnish Server değerini kullanır , örn.

proxy_pass http://127.0.0.1:6081;
kopyala
63-67 satırları WordPress/WooCommerce için özeldir .

/wp-admin/ ve wp-login.php'ye yapılan tüm istekler atlanır , yani bunlar Varnish Cache'den GEÇMEMEKTEDİR ; 8080 numaralı bağlantı noktasına iletilirler (bkz. satır 12-37 ), burada PHP Uygulaması tarafından PHP-FPM aracılığıyla işlenirler .

server {
  listen 80;
  listen [::]:80;
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  {{ssl_certificate_key}}
  {{ssl_certificate}}
  server_name domain.com;
  return 301 https://www.domain.com$request_uri;
}

server {
  listen 8080;
  listen [::]:8080;
  server_name www.domain.com;
  {{root}}

  try_files $uri $uri/ /index.php?$args;
  index index.php index.html;

  location ~ \.php$ {
    include fastcgi_params;
    fastcgi_intercept_errors on;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    try_files $uri =404;
    fastcgi_read_timeout 3600;
    fastcgi_send_timeout 3600;
    fastcgi_param HTTPS "on";
    fastcgi_pass 127.0.0.1:{{php_fpm_port}};
    fastcgi_param PHP_VALUE "{{php_settings}}";
  }
 
  if (-f $request_filename) {
    break;
  }
}

server {
  listen 80;
  listen [::]:80;
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  {{ssl_certificate_key}}
  {{ssl_certificate}}
  server_name www.domain.com;
  {{root}}

  {{nginx_access_log}}
  {{nginx_error_log}}

  if ($scheme != "https"😉 {
    rewrite ^ https://$host$uri permanent;
  }

  location ~ /.well-known {
    auth_basic off;
    allow all;
  }

  {{settings}}

  location ~/(wp-admin/|wp-login.php) {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Host $http_host;
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8080;
    proxy_max_temp_file_size 0;
    proxy_connect_timeout      7200;
    proxy_send_timeout         7200;
    proxy_read_timeout         7200;
    proxy_buffer_size          128k;
    proxy_buffers              4 256k;
    proxy_busy_buffers_size    256k;
    proxy_temp_file_write_size 256k;
  }

  location / {
    {{varnish_proxy_pass}}
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_hide_header X-Varnish;
    proxy_redirect off;
    proxy_max_temp_file_size 0;
    proxy_connect_timeout      720;
    proxy_send_timeout         720;
    proxy_read_timeout         720;
    proxy_buffer_size          128k;
    proxy_buffers              4 256k;
    proxy_busy_buffers_size    256k;
    proxy_temp_file_write_size 256k;
  }

  location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ {
    add_header Access-Control-Allow-Origin "*";
    expires max;
    access_log off;
  }

  if (-f $request_filename) {
    break;
  }
}

Please Create a free account and join the conversation; after signing in you will return to this topic.

Currently 1 people reading this topic. (1 guest(s))