Despre Linux

  • Facebook
  • Twitter
  • LinkedIn
  • Acasă
  • Linux
    • Comenzi Linux
    • Tutoriale
  • Kubernetes
  • RHCSA
    • Exerciții RHCSA
    • SELinux
    • Permisiuni
  • General
    • Open source
  • Contact

Cum se instalează Varnish Cache pe un server VPS cu Ubuntu 14.04 și panoul Sentora

3 aprilie 2016 By Bobses 6 comentarii

Pentru cei care încă nu știu, Varnish Cache este un accelerator HTTP open source care poate fi instalat pe orice server web care rulează Apache sau Nginx. Varnish Cache poate îmbunătăți performanța generală a serverului web prin adăugarea conținutului website-urilor în cache. Cache-ul Varnish stochează copii ale cererilor utilizatorilor și le afișează aceeași pagină atunci când același utilizator vizitează aceeași pagină. Varnish Cache îmbunătățește viteza și accelerează un site web de 300 până la 1000 de ori.

Acest articol (ca de altfel și celelalte din categoria VPS) presupune că aveți cunoștințe de bază Linux, cum ar utilizarea shell-ului și structura fișierelor pe serverul vostru VPS.

Pentru a începe, conectați-vă prin ssh la serverul VPS. Comenzile de mai jos vor fi date cu sudo în față dacă sunteți autentificat ca simplu utilizator; dacă nu vreți să mai scrieți sudo, prin darea comenzii sudo su veți trece în modul superutilizator (root).

Instalare Varnish Cache

Introducem următoarele comenzi în terminal:

apt-get install apt-transport-https
curl https://repo.varnish-cache.org/GPG-key.txt | apt-key add -
echo "deb https://repo.varnish-cache.org/ubuntu/ trusty varnish-4.0" >> /etc/apt/sources.list.d/varnish-cache.list
apt-get update
apt-get install varnish

E posibil să primiți un mesaj de eroare, precum că nu aveți curl instalat. Pentru a instala acest pachet, nu trebuie decât să dați comanda de mai jos și să reluați cele scrise mai sus:

sudo apt-get-install curl

Configurare Varnish Cache

 Varnish este configurat automat să ofere conținutul pe portul 6081, iar Apache pe portul 8080.

Trebuie ca, pe un server de producție, să-i spunem că avem nevoie de portul 80. Pentru asta, rulăm comanda:

nano /etc/default/varnish

și schimbăm următoparele linii:

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

în:

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

Cu F3 salvăm și cu CTRL+X ieșim din editorul de text.

Rulăm comanda de mai jos pentru a ne asigura că Varnish ascultă pe portul 8080:

nano /etc/varnish/default.vcl

backend default {
.host = "127.0.0.1";
.port = "8080";

}

Pasul următor este setarea Apache și Sentora pe portul 8080:

setso --set apache_port 8080
setso --set sentora_port 8080

Ne conectăm în panoul de control Sentora și, în meniu, la Admin --> Modul Admin --> Apache config ne asigurăm că în dreptul opțiunii Apache port este trecută valoarea 8080. navigăm în josul paginii și bifăm căsuța Force update pentru a ne asigura că vhost-urile (domeniile) vor fi actualizate la următoarea rulare a Daemon-ului.

Se restartează Apache:

service apache2 restart

Atenție! După salvarea acestor setări și trecerea serverului pe portul 8080, niciun website de pe server nu va mai putea fi accesat! Pentru a micșora perioada de downtime, trebuie ca următoarele 2 comenzi să fie date repede:

php -q /etc/sentora/panel/bin/daemon.php
service varnish restart

Dacă totul a mers fără erori, Varnish funcționează pe serverul vostru pe toate domeniile (vhosts). Pentru a vă verifica dacă site-ul este sub influența Varnish Cache, scrieți adresa aici (se verifică header-ul) și apăsați Submit. Ar trebui să vedeți:

Via => 1.1 varnish-v4

O altă modalitate de a vă verifica domeniul este scrierea în terminal a următoarei comenzi:

curl -I DomeniulTău.TLD

și veți vedea ceva de genul:

La fel, trebuie să apară Via: 1.1 varnish-v4

Cele mai populare CMS au câte un plugin pentru funcționarea mai bună cu Varnish Cache. Astfel, pentru WordPress se poate instala plugin-ul Varnish HTTP Purge, iar pentru Joomla extensia Cluster Varnish for Joomla. Pe lângă alte funcționalități, ambele permit ștergerea cache-ului Varnish.

O configurare mai complexă poate fi obținută editând fișierul /etc/varnish/default.vcl. Este bine ca, înainte de a înlocui conținutul acestui fișier, să facem o copie a fișierului inițial:

cp /etc/varnish/default.vcl /etc/varnish/default.vcl_backup

Un model simplu de fișier default.vcl care funcționează pe serverul meu este mai jos. Orice sugestii sunt binevenite în comentarii.

# This is an example VCL file for Varnish.
#
# It does not do anything by default, delegating control to the
# builtin VCL. The builtin VCL is called when there is no explicit
# return statement.
#
# See the VCL chapters in the Users Guide at https://www.varnish-cache.org/docs/
# and https://www.varnish-cache.org/trac/wiki/VCLExamples for more examples.

# Marker to tell the VCL compiler that this VCL has been adapted to the
# new 4.0 format.
vcl 4.0;

# Default backend definition. Set this to point to your content server.
backend default {
.host = "127.0.0.1";
.port = "8080";
}

sub vcl_recv {
# Happens before we check if we have this in cache already.
#
# Typically you clean up the request here, removing cookies you don't need,
# rewriting the request, etc.

if (req.method == "PURGE") {
if (req.http.X-Purge-Method == "regex") {
ban("req.url ~ " + req.url + " && req.http.host ~ " + req.http.host);
return (synth(200, "Banned."));
} else {
return (purge);
}
}

if(
req.url ~ "^/administrator" ||
req.url ~ "^/component/banners" ||
req.url ~ "^/component/users" ||
req.url ~ "^/wp-admin" ||
req.url ~ "^/wp-login.php" ||
req.url ~ "^/any-other-url-path"
) {
return (pass);
}

set req.http.cookie = regsuball(req.http.cookie, "wp-settings-\d+=[^;]+(; )?", "");
set req.http.cookie = regsuball(req.http.cookie, "wp-settings-time-\d+=[^;]+(; )?", "");
set req.http.cookie = regsuball(req.http.cookie, "wordpress_test_cookie=[^;]+(; )?", "");
if (req.http.cookie == "") {

unset req.http.cookie;
}
}
sub vcl_backend_response {
# Happens after we have read the response headers from the backend.
#
# Here you clean the response headers, removing silly Set-Cookie headers
# and other mistakes your backend does.

if (beresp.ttl == 120s) {
set beresp.ttl = 1h;
}

}

sub vcl_deliver {
# Happens when we have all the pieces we need, and are about to send the
# response to the client.
#
# You can do accounting or modifying the final object here.

}

Partajează asta:

  • Dă clic pentru a partaja pe Facebook(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe LinkedIn(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe Twitter(Se deschide într-o fereastră nouă)

Similare

Din categoria: Tutoriale Etichete: configurare VPS, linux, Sentora, server virtual privat, Ubuntu, Varnish Cache, VPS

Comentarii

  1. Razvan Stanga a zis

    12 mai 2016 la ora 17:34

    https://wordpress.org/plugins/vcaching/ plugin Varnish pentru WordPress.

    Răspunde
    • Bobses a zis

      13 mai 2016 la ora 20:57

      Am să încerc și pluginul tău - pare interesant. Deocamdată, folosesc Varnish HTTP Purge.

      Răspunde
  2. Malin a zis

    13 aprilie 2016 la ora 17:26

    Merge si pe Debian. Eu am pus Varnish 4.1 si singura modificare a fost calea catre repo:

    echo "deb https://repo.varnish-cache.org/debian/ jessie varnish-4.1" >> /etc/apt/sources.list.d/varnish-cache.list

    Pentru ca am un custom httpd-vhosts.conf eu mi-am actualizat zonele manual evitand "Force update" in panel.

    Probabil ca ai mai putea adauga faptul ca cei care instaleaza trebuie sa se si asigure ca porturile 8080, 6081 si 6082 sunt deschise in firewall. La mine ultimele 2 n-au fost si odata pornit Varnish in afara de siteurile ce erau prin SSL nimic n-a mai mers.

    Răspunde
    • Bobses a zis

      13 aprilie 2016 la ora 18:01

      Bună observația!

      Răspunde

Trackbacks

  1. Linia de comandă din Linux va fi implementată în Windows 10 | Despre Linux spune:
    21 iunie 2021 la 19:13

    […] nu mai e nouă, dar am fost ocupat cu altceva în ultimele zile și nu mă pot abține să nu scriu despre ea: proiectul "Ubuntu pe Windows" va […]

    Răspunde
  2. Linia de comandă din Linux va fi implementată în Windows 10 spune:
    4 aprilie 2016 la 19:16

    […] nu mai e nouă, dar am fost ocupat cu altceva în ultimele zile și nu mă pot abține să scriu despre ea: proiectul “Ubuntu pe […]

    Răspunde

Lasă un răspuns Anulează răspunsul

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Copyright © 2023 · Bobses

Administrează consimțămintele pentru cookie-uri
Pentru a oferi cea mai bună experiență, folosim tehnologii, cum ar fi cookie-uri, pentru a stoca și/sau accesa informațiile despre dispozitive. Consimțământul pentru aceste tehnologii ne permite să procesăm date, cum ar fi comportamentul de navigare sau ID-uri unice pe acest site. Dacă nu îți dai consimțământul sau îți retragi consimțământul dat poate avea afecte negative asupra unor anumite funcționalități și funcții.
Funcționale Mereu activ
Stocarea tehnică sau accesul sunt strict necesare în scopul legitim de a permite utilizarea unui anumit serviciu cerut în mod explicit de către un abonat sau un utilizator sau în scopul exclusiv de a executa transmiterea unei comunicări printr-o rețea de comunicații electronice.
Preferințe
Stocarea tehnică sau accesul este necesară în scop legitim pentru stocarea preferințelor care nu sunt cerute de abonat sau utilizator.
Statistici
Stocarea tehnică sau accesul care sunt utilizate exclusiv în scopuri statistice. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
Stocarea tehnică sau accesul sunt necesare pentru a crea profiluri de utilizator pentru a trimite publicitate sau pentru a urmări utilizatorul pe un site web sau pe mai multe site-uri web în scopuri de marketing similare.
Administrează opțiunile Administrează serviciile Administrează vânzătorii Citește mai multe despre aceste scopuri
Vizualizează preferințele
{title} {title} {title}