Apache, Nginx, Lighttpd, ISS: Come identificare l’identità di un webserver
September 10, 2012 — 19:39

Author: f0ff0 | Category: Linux SysAdmin | Tags: , , , , | Comments: 0

Come possiamo verificare su che webserver gira una pagina web?
Ci sono diverse risposte alla domanda in questione, alcune possono sembrare meno ortodosse come ad esempio telnet (telnet www.foo.bar 80), altre molto più utili ed intuitive come cURL.

Il comando cURL è disponibile in tutte le distribuzioni linux e unix-like come anche Mac OSX.

Ecco come verificare l’identità del webserver con cURL:

curl -I http://www.foo.bar

 

L’output del comando sarà simile al seguente:


HTTP/1.1 200 OK
Server: Apache
Date: Mon, 10 Sep 2012 17:25:33 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

Nginx Attivare la compressione HTTP con gzip
September 8, 2012 — 16:51

Author: f0ff0 | Category: Linux SysAdmin | Tags: , , , | Comments: 0
datacenter

La compressione HTTP con il modulo gzip di Nginx è un’importante feature che ci permette di migliorare il rendimento del sito web hostato principalmente su diversi fronti:

  • Riduzione di banda totale e transfert rate del nostro sito web.
  • Best practices di Google per quanto riguarda il SEO e la velocità di risposta del sito internet.
  • Velocizzare il tempo di caricamento delle pagine web.

Controindicazioni principali:

  • Comprimere con gzip aumenta il carico sulle CPU del server.
  • Il processo di compressione e decompressione può in alcuni casi essere controproducente se si tratta di pochi bytes.

 

Nei pacchetti Linux precompilati il modulo Nginz gzip static è quasi sempre attivo di default. Nel caso si sia compilato Ngix partendo dai sorgenti, controllare se si è passato l’opzione seguente in fase di compilazione:

./configure --with-http_gzip_static_module

La compressione HTTP con il modulo gzip static di Nginx è attivabile nei seguenti contesti:


http
server
location

Di seguito si trova un esempio di configurazione tipica del modulo di compressione gzip.

gzip on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/html text/css application/json application/javascript application/x-javascript text/javascript text/xml application/xml application/rss+xml application/atom+xml application/rdf+xml;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;

Alcune piccole delucidazioni sulla configurazione:

  • gzip_types: con questa direttiva possiamo specificare quali tipi di MIME-Types desideriamo comprimere. Di default è abilitato solo text/html.
  • gzip_min_length: determiniamo la dimensione minima dei file che vogliamo comprimere. Abbassare drasticamente questo parametro può provocare maggior carico sulle CPU del server e tempi di risposta aumentati che quindi non giustificano il risparmio ottenuto dalla compressione.
  • gzip_disable: anche se ormai si assottiglia sempre più la percentuale di visitatori che navigano con browser che non supportano la compressione HTTP, questa direttiva ci permette di non creare problemi agli utenti di Internet Explorer fino al 6.
  • gzip_vary: abilita il response header “Vary: Accept-Encoding”. Questa direttiva fa si che IE non esegua caching dei contenuti (Bug noto). Tratto da wikipedia: “Tells downstream proxies how to match future request headers to decide whether the cached response can be used rather than requesting a fresh one from the origin server”.