Configurare il server web

Configurare il server Web per l'ascolto su una porta diversa da quella predefinita 80, in quanto Vernice risponde direttamente alle richieste HTTP in ingresso, non al server Web.

Le sezioni seguenti utilizzano la porta 8080 come esempio.

Per modificare la porta di ascolto di Apache 2.4:

  1. Apri /etc/httpd/conf/httpd.conf in un editor di testo.
  2. Individua il Listen direttiva.
  3. Modifica il valore della porta di ascolto in 8080. È possibile utilizzare qualsiasi porta di ascolto disponibile.
  4. Salva le modifiche apportate a httpd.conf ed esci dall’editor di testo.

Modificare la configurazione del sistema di vernice

Per modificare la configurazione del sistema di vernice:

  1. Come utente con root , apri il file di configurazione Vanish in un editor di testo:

    • CentOS 6: /etc/sysconfig/varnish
    • CentOS 7: /etc/varnish/varnish.params
    • Debian: /etc/default/varnish
    • Ubuntu: /etc/default/varnish
  2. Impostare la porta di ascolto Vernice su 80:

    code language-conf
    VARNISH_LISTEN_PORT=80
    

    Per la vernice 4.x, assicurarsi che DAEMON_OPTS contenga la porta di ascolto corretta per -a (anche se VARNISH_LISTEN_PORT è impostato sul valore corretto):

    code language-conf
    DAEMON_OPTS="-a :80 \
       -T localhost:6082 \
       -f /etc/varnish/default.vcl \
       -S /etc/varnish/secret \
       -s malloc,256m"
    
  3. Salvate le modifiche nel file di configurazione Vernice e uscite dall'editor di testo.

Modificare la VCL di default

Questa sezione illustra come fornire una configurazione minima in modo che Varish restituisca le intestazioni di risposta HTTP. Questo consente di verificare che la vernice funzioni prima di configurare Commerce applicazione per l’uso di vernice.

Per configurare la vernice in modo minimo:

  1. Backup default.vcl:

    code language-bash
    cp /etc/varnish/default.vcl /etc/varnish/default.vcl.bak
    
  2. Apri /etc/varnish/default.vcl in un editor di testo.

  3. Individua la seguente stanza:

    code language-conf
    backend default {
        .host = "127.0.0.1";
        .port = "80";
    }
    
  4. Sostituisci il valore di .host con il nome host o l'indirizzo IP completo e la porta di ascolto della vernice backend o server di origine ovvero il server che fornisce il contenuto Vernice accelera.

    In genere, si tratta del server web. Consulta Server back-end nel Guida alla vernice.

  5. Sostituisci il valore di .port con la porta di ascolto del server web (8080 in questo esempio).

    Esempio: Apache è installato sull’host 192.0.2.55 e Apache è in ascolto sulla porta 8080:

    code language-conf
    backend default {
        .host = "192.0.2.55";
        .port = "8080";
    }
    
    note info
    INFO
    Se Vernice e Apache sono in esecuzione sullo stesso host, l’Adobe consiglia di utilizzare un indirizzo IP o un nome host e non localhost.
  6. Salva le modifiche apportate a default.vcl ed esci dall’editor di testo.

  7. Vernice di riavvio:

    code language-bash
    service varnish restart
    

Se l'avvio di Varning non riesce, provare a eseguirlo dalla riga di comando nel modo seguente:

varnishd -d -f /etc/varnish/default.vcl

Dovrebbero essere visualizzati messaggi di errore.

INFO
Se Vernice non si avvia come servizio, è necessario configurare le regole SELinux per consentirne l'esecuzione.

Verifica che la vernice funzioni

Le sezioni seguenti spiegano come verificare che Varnish funzioni, ma senza configurazione di Commerce per utilizzarlo. Prova prima di configurare Commerce.

Eseguire i task descritti nelle sezioni seguenti nell'ordine indicato:

Inizia vernice

Immetti: service varnish start

Se Varnish non si avvia come servizio, inizialo dalla riga di comando come segue:

  1. Avvia CLI vernice:

    code language-bash
    varnishd -d -f /etc/varnish/default.vcl
    
  2. Avviare il processo di produzione di vernice:

    Quando richiesto, immetti start

    Per confermare un avvio riuscito, vengono visualizzati i seguenti messaggi:

    code language-terminal
    child (29805) Started
    200 0
    
    Child (29805) said
    Child (29805) said Child starts
    

netstat

Accedere al server Vernice e immettere il comando seguente:

netstat -tulpn

Cerca in particolare il seguente output:

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      32614/varnishd
tcp        0      0 127.0.0.1:58484             0.0.0.0:*                   LISTEN      32604/varnishd
tcp        0      0 :::8080                     :::*                        LISTEN      26822/httpd
tcp        0      0 ::1:48509                   :::*                        LISTEN      32604/varnishd

Il precedente mostra la Vernice che corre sulla porta 80 e l'Apache che sulla porta 8080.

Se non vedi l’output per varnishd, accertarsi che Vernice sia in esecuzione.

Consulta netstat opzioni.

Installare il software Commerce

Installa il software Commerce, se non lo hai già fatto. Quando viene richiesto un URL di base, utilizzare l'host e la porta 80 di Varnish (per Varnish) perché quest'ultimo riceve tutte le richieste HTTP in entrata.

Possibile errore durante l’installazione di Commerce:

Error 503 Service Unavailable
Service Unavailable
XID: 303394517
Varnish cache server

Se si verifica questo errore, modificare default.vcl e aggiungi un timeout al backend strofa come segue:

backend default {
   .host = "127.0.0.1";
   .port = "8080";
   .first_byte_timeout = 600s;
}

Verificare le intestazioni di risposta HTTP

Ora è possibile verificare che Vernice distribuisca le pagine osservando le intestazioni di risposta dei HTML restituite da qualsiasi pagina.

Prima di poter esaminare le intestazioni, è necessario impostare Commerce per la modalità sviluppatore. Esistono diversi modi per farlo, il più semplice dei quali è modificare .htaccess nella directory principale dell’applicazione Commerce. È inoltre possibile utilizzare magento deploy:mode:set comando.

Impostare Commerce per la modalità sviluppatore

Per impostare Commerce per la modalità sviluppatore, utilizza magento deploy:mode:set comando.

Guardate il registro vernice

Verificare che Varnish sia in esecuzione, quindi immettere il seguente comando sul server di Varnish:

varnishlog

In un browser web, vai a qualsiasi pagina di Commerce.

Nella finestra del prompt dei comandi viene visualizzato un lungo elenco di intestazioni di risposta. Cerca intestazioni come le seguenti:

-   BereqHeader    X-Varnish: 3
-   VCL_call       BACKEND_FETCH
-   VCL_return     fetch
-   BackendOpen    17 default(10.249.151.10,,8080) 10.249.151.10 60914
-   Backend        17 default(10.249.151.10,,8080)
-   Timestamp      Bereq: 1440449534.261791 0.000618 0.000618
-   ReqHeader      Host: 10.249.151.10
-   ReqHeader      Connection: keep-alive
-   ReqHeader      Content-Length: 86
-   ReqHeader      Cache-Control: max-age=0
-   ReqHeader      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
-   ReqHeader      Origin: http://10.249.151.10

Se le intestazioni come queste lo fanno non visualizzare, arrestare Vernice, controllare default.vcle riprova.

Esaminare le intestazioni di risposta di HTML

Esistono diversi modi per esaminare le intestazioni di risposta, incluso l’utilizzo di un plug-in del browser o di un controllo del browser.

L’esempio che segue utilizza curl. Puoi immettere questo comando da qualsiasi computer in grado di accedere al server Commerce utilizzando HTTP.

curl -I -v --location-trusted '<your Commerce base URL>'

Ad esempio:

curl -I -v --location-trusted 'http://192.0.2.55/magento2'

Cerca intestazioni come le seguenti:

Content-Type: text/html; charset=iso-8859-1
X-Varnish: 15
Age: 0
Via: 1.1 varnish-v6
X-Magento-Cache-Debug: HIT
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c