Server Apache: una guida completa per principianti

Esistono diversi tipi di server web sul mercato e tra questi c’è Apache, uno dei server più antichi

Sebbene negli ultimi anni siano emerse nuove alternative più moderne ed efficienti, Apache continua ad essere un server di riferimento.

Statisticamente, Apache copre il 33,7% dei siti top 1000, subito dopo Nginx con il suo 38,8%

È molto diffuso nei sistemi operativi di tipo Unix e può essere utilizzato su quasi tutte le piattaforme, come Windows, OS X, OS/2, ecc

In questa guida dettagliata, vedremo..:

  • Che cos’è esattamente Apache; la sua importanza
  • La sua importanza ;
  • Come funziona;
  • I suoi vantaggi e svantaggi;
  • Come si differenzia dagli altri server web presenti sul mercato;
  • La sua installazione e configurazione;
  • ecc.

Cominciamo!

Contenuti

Capitolo 1: Cos’è il server Apache e come funziona?

1.cos’è Apache e cosa fa?

Il server Apache è uno dei server web gratuiti più potenti sul mercato. È stato creato nel 1995 da Rob McCool, allora dipendente dell’NCSA

Secondo le statistiche di W3techs, è utilizzato dal 31, 5% di tutti i siti web per i quali è noto il server

Serveur Apache Guide Complet (2)

Questa è la tecnologia di base delFondazione Software Apacheè la tecnologia centrale di Internet, responsabile di oltre una dozzina di progetti che coinvolgono :

  • Tecnologie di trasmissione web
  • Elaborazione dei dati;
  • E l’esecuzione di applicazioni distribuite

Perché Apache? La parola, Apache, è stata presa dal nome della tribù di nativi americaniApache la parola Apache deriva dal nome della tribù di nativi americani “Apache”, famosa per le sue abilità nella guerra e nella strategia.

Homme de la Tribu americaine Apache

Fonte: Guru99

Inizialmente, si trattava solo di un gruppo di patch per il server web HTTPd dell’NCSA, che l’autore ha poi completamente sostituito riscrivendo tutto il codice originale.

In breve, Apache è un server web HTTP open source sviluppato e mantenuto da una comunità di utentiintornoallaApache Software Foundation. Viene utilizzato per rispondere alle richieste di contenuti da parte dei client web (browser).

 Client Serveur Bae de donnees

Fonte: Informationq

Attualmente e dal 1996, è il server web gratuito più utilizzato al mondo grazie alla sua sicurezza e stabilità.

Inoltre, la maggior parte delle società di web hosting lavora con server Apache.

1.1.1. Che cos’è un server web?

Un server web è un programma che elabora e restituisce informazioni quando un utente effettua una richiesta

Requete et Reponse serveur web

Fonte: nanduribalajee

In altre parole, ospita siti web su uno o più server e visualizza i contenuti (siti web) del server tramite un software client (un browser).

La maggior parte dei server è compatibile con Linux. I server web Linux più importanti sono Apache e NGINX.

1.1.2. Qual è la sfida più grande di un server web?

I file che i server elaborano sono scritti in lingue diverse

  • Pitone
  • Java
  • PHP
  • Ecc.

Quando un utente desidera caricare una pagina da un sito web, il suo browser invia una richiesta al server e Apache restituisce una risposta con tutti i file richiesti:

  • Testo
  • Immagini;
  • Video
  • Ecc.

In breve, il server fornisce le pagine richieste dai diversi utenti e garantisce una comunicazione corretta e sicura. Il server e il client comunicano tramite il protocollo HTTP

1.come funziona un server Apache?

La funzionalità principale di questo servizio web è quella di fornire agli utenti tutti i file necessari per visualizzare il web. Le richieste degli utenti vengono solitamente effettuate tramite un browser:

  • Cromo
  • Firefox
  • Safari;
  • Ecc.

Apache assicura che la comunicazione tra il server web e il client web (l’utente che richiede le informazioni) sia fluida e coerente.

Pertanto, quando un utente effettua una richiesta HTTP tramite il browser per entrare in un sito web o in un URL specifico, Apache restituisce le informazioni richieste tramite il protocollo HTTP.

Per esempio, quando un utente scrive twaino.com nel suo browser, questa richiesta raggiungerà il nostro server Apache, che fornirà i testi, le immagini, gli stili… tramite il protocollo HTTP.

Fonctionnement d un serveur apache

Fonte: Temok

Inoltre, Apache consente di applicare un elevato livello di personalizzazione grazie al suo sistema modulare.

Infatti, il server ha un basato sul modulo che le permette di attivare e disattivare varie funzioni come

  • moduli di sicurezza come mod_security
  • moduli di caching come Varnish;
  • o moduli di personalizzazione delle intestazioni come mod_headers.

Questi moduli Apache devono essere utilizzati con cautela, in quanto possono influire sulla sicurezza e sulla funzionalità del server web. (Maggiori dettagli sui moduli Apache sono riportati di seguito).

Apache le permette anche di personalizzare le impostazioni PHP del suo hosting attraverso il file .htaccess.

1.3. Alcune caratteristiche di Apache

Si tratta di un server web con supporto per HTTP/1.1 e successivamente per HTTP/2.0, secondo RFC 7540

caractéristiques de Apache (1)

È stato uno dei primi server a supportare VirtualHost (noto anche come sito virtuale) per domini e IP, seguendo il normale standard RFC 2616

Caractéristiques de Apache (1)

Questo permette a più domini di essere ospitati sullo stesso server con lo stesso IP, cosa che oggi sembra elementare ma che negli anni ’90 era una rivoluzione.

Le caratteristiche principali di Apache sono le seguenti:

  • È gratuito e open source;
  • Facile da installare e configurare;
  • Altamente estensibile e adattabile con i moduli;
  • Funzioni integrate per l’autenticazione e la convalida degli utenti;
  • Supporto per linguaggi come Perl, PHP e Python.

Capitolo 2: Quali sono i vantaggi e gli svantaggi di Apache?

2.1. Vantaggi di Apache

Alcuni dei vantaggi che possiamo trovare in un server Apache sono i seguenti:

  • Supporto: è uno dei server più utilizzati da oltre due decenni, quindi dietro di esso c’è una comunità molto ampia accompagnata da un’ampia documentazione.
  • Multipiattaforma: funziona sia su Microsoft Windows che su Unix/Linux e Mac, il che lo rende un servizio eccellente sia per un server che per un ambiente di sviluppo su qualsiasi workstation.
  • Caratteristiche: contiene un gran numero di moduli ufficiali e di terze parti che le permettono di estendere le funzionalità del server.
  • Semplicità: è uno dei server più facili da installare e configurare, soprattutto nelle distribuzioni Linux dove fa parte dei repository di ogni distribuzione. Nel caso di Windows, si può trovare in un pacchetto con il server MySQL e PHP in un unico programma di installazione, che rende l’installazione molto più semplice.
  • Sicurezza: Apache dispone di funzioni integrate per rendere il software sicuro, con moduli di Autorizzazione e Autenticazione e funzioni di Controllo degli Accessi, oltre al supporto della crittografia con certificati SSL/TLS.
  • Ha una grande comunità di sviluppatori in tutto il mondo, che aiutano a migliorare il software, dato che il codice sorgente originale è liberamente consultabile;
  • Struttura basata su moduli;
  • È open source e gratuito;
  • Alto livello di sicurezza grazie agli aggiornamenti costanti;
  • Personalizzazione tramite .htaccess indipendente in ogni hosting;
  • Compatibile con tutti i principali CMS, negozi online e piattaforme di e-learning;
  • È uno dei server web più vecchi sul mercato, quindi è super affidabile;
  • Permette di attivare e disattivare le funzioni;
  • Facile da usare per i principianti.

2.2 Svantaggi di Apache

I due svantaggi di Apache sono

  • Le prestazioni possono essere compromesse sulle pagine ad alto traffico, soprattutto dopo 10.000 connessioni;
  • Se i moduli non vengono utilizzati correttamente, si possono creare delle falle nella sicurezza.

L’unico svantaggio degno di nota è la scarsa performance rispetto ad altre alternative presenti sul mercato, più veloci e in grado di gestire molto più traffico con le stesse risorse.

Capitolo 3: Differenze tra Apache e gli altri principali server web

3.1. Apache contro Nginx

Sebbene NGINX sia relativamente giovane (è nato nel 2004), è diventato popolare molto rapidamente grazie ai vantaggi che offre nella gestione di un traffico elevato di oltre 10.000 connessioni alla volta.

Fonte: Apache Vs NGINX – Qual è il miglior server web per lei?

Può essere definita come un’applicazione per server web. È stato progettato principalmente per risolvere il problema che avevano alcuni server come Apache: I proprietari di siti con molto traffico avevano problemi di prestazioni.

NGINX consente di effettuare tutte le richieste a un sito web in un unico processo e offre una migliore scalabilità.

Per questo motivo, viene utilizzato da marchi internazionali come Netflix, Airbnb, Pinterest o Wikipedia

In breve, per i siti web ad alto traffico, NGINX è ciò di cui ha bisogno e per i siti con poche visite, Apache è l’ideale.

Per fornire un servizio web ad alte prestazioni in termini di connessione, alcuni server hanno una configurazione Apache e Nginx in esecuzione in parallelo.

3.1.1. Le differenze tra Nginx e Apache

Il server americano Apache e il russo Ngnix hanno combattuto e guadagnato terreno nel mondo del web hosting. Sono due delle risorse più utilizzate per gestire migliaia di siti web su server locali.

Sebbene entrambi i server servano allo stesso scopo di mantenere il mondo connesso, vale la pena di esaminare quali sono le loro differenze più importanti e qui ne saprà di più.

3.1.1.1 Hanno una struttura e una portata diverse

Il server web Apache ha una struttura software semplice, è open source ed elabora una richiesta dell’utente tramite HTTP o HTTPS, una alla volta.

D’altra parte, Ngnix è più robusto, open source e adatto a tutti i tipi di siti e di traffico web, in quanto può gestire un gran numero di connessioni parallele dal processo di lavoro.

3.1.1.2. Utilità Apache per l’hosting condiviso

Una caratteristica di Apache, a differenza di Nginx, è che il cliente può scegliere la configurazione del suo sito web sul server senza influenzare gli altri o modificare il layout generale del server nell’hosting condiviso.

La funzione di cui sopra è possibile dai file .htaccess, con i quali ogni directory della pagina web può essere configurata in modo indipendente.

Sebbene sia un grande vantaggio, questa flessibilità nella configurazione può influire sulle prestazioni del server quando riceve un gran numero di richieste.

3.1.1.3. Compatibilità dei due server

Apache è altamente compatibile con Linux, Windows e con i CMS più utilizzati per la creazione e la gestione di siti web, come WordPress e Joomla.

D’altra parte, Nginx non raggiunge ancora una sincronizzazione ideale con Windows, ma è anche compatibile con i gestori di contenuti più diffusi e con il linguaggio di programmazione Python.

3.1.1.4. Apache e Nginx facilitano il rapporto web-utente

I server web sono arrivati a noi per facilitare lo scambio di informazioni

Se lo guardiamo da un punto di vista più specifico, permettono alle pagine di raggiungere i loro obiettivi mantenendo una velocità di caricamento che consente all’utente di ottenere rapidamente ciò che sta cercando.

Non ci sono dubbi sull’utilità dei server web, Apache e Nginx sono preziosi

3.1.1.5. Altre differenze
  1. L’utilizzo della CPU e della memoria è costante su Nginx anche in presenza di carichi pesanti rispetto ad Apache.
  2. Apache utilizza metodi convenzionali basati sui file per gestire i contenuti statici e i contenuti dinamici, integrando il renderer linguistico, mentre Nginx non ha la capacità di renderizzare i contenuti dinamici in modo nativo.
  3. Apache consente una configurazione aggiuntiva per directory valutando e interpretando le direttive nei file nascosti chiamati .htaccess, mentre Nginx non consente una configurazione aggiuntiva per directory valutando e interpretando le direttive.
  4. Apache interpreta .htaccess mentre Nginx non interpreta .htaccess
  5. Le richieste vengono servite più velocemente da Nginx che da Apache.
  6. Il livello di sicurezza è elevato in Nginx rispetto ad Apache, in quanto Nginx non consente di distribuire l’accesso alle impostazioni a livello di directory a un singolo utente.
  7. Apache è stato progettato come server web, mentre Nginx è stato progettato come server web e come server proxy.
  8. In Apache, i moduli vengono caricati e scaricati dinamicamente, ma in Nginx, i moduli non vengono caricati dinamicamente.
  9. In Nginx, i moduli vengono selezionati e poi compilati nel software principale, mentre in Apache ciò avviene dinamicamente.

Ora che le differenze sono chiare, sta a lei decidere quale sia quella giusta per il tipo di progetto che desidera realizzare.

3.2. Apache contro Tomcat

Tomcat (Apache tomcat) è un sottoprogetto della Apache Foundation ed è un progetto allo stesso livello del server Apache (cioè httpd)

Apache Tomcat

Fonte: Home-theater-designers

Tomcat è destinato esclusivamente alle applicazioni Java.

In termini di somiglianze tra i due, abbiamo :

  • Sono sviluppati dall’organizzazione Apache;
  • Hanno la funzione di servizio HTTP;
  • Sono open source e gratuiti.

In termini di distinzione, abbiamo

1. Tomcat è speciale in quanto è anche un contenitore web Java e può gestire le JSP, mentre Apache di solito viene fornito con PHP e non può gestire le JSP.

2. Apache supporta solo le pagine web statiche e richiede Tomcat per gestire le pagine web dinamiche come Jsp. Tomcat può essere utilizzato anche per le pagine statiche, ma in alcuni casi è meno efficiente di Apache.

3. Non può essere configurato in modo semplice come Apache.

4. Integrazione di Apache e Tomcat:

  • – Se il cliente richiede una pagina statica, solo il server Apache deve rispondere alla richiesta;
  • – Se il cliente richiede una pagina dinamica, il server Tomcat risponde alla richiesta.

5. Apache e Tomcat sono indipendenti e possono essere integrati nello stesso server.

6. Apache è implementato in linguaggio C e supporta diverse caratteristiche e moduli per estendere la funzionalità di base. Tomcat è scritto in Java ed è più adatto a Servlet e JSP.

7. Apache è un server web (parsing statico, come HTML), tomcat è un server di applicazioni Java (parsing dinamico, come JSP).

8. Tomcat è solo un contenitore di servlet, che può essere considerato come un’estensione di apache, ma può funzionare indipendentemente da apache.

9. Apache è un server ordinario, che supporta solo le pagine web HTML, cioè le normali pagine web. Tomcat, invece, è un contenitore di jsp/servlet e supporta anche HTML, JSP, ASP, PHP, CGI, ecc.

10. Apache si concentra sul server HTTP e Tomcat sul motore servlet

11. A differenza di Tomcat, Apache può funzionare per un anno senza riavviarsi e la stabilità è molto buona.

3.3. Apache contro LiteSpeed

Molte soluzioni server moderne utilizzano una tecnologia esistente come base su cui costruire. Questo è esattamente il caso di LiteSpeed.

LiteSpeed

LiteSpeed Web Server (LSWS) è stato rilasciato per la prima volta nel 2003 ed è stato commercializzato come sostituto di Apache

Ha la capacità di leggere i file di configurazione di Apache, di eseguire gli stessi comandi e di integrarsi completamente con tutti i pannelli di controllo come cPanel, Plesk e DirectAdmin.

I miglioramenti principali riguardano le prestazioni e la scalabilità.

Sebbene LiteSpeed fosse destinato a sostituire Apache, non utilizza la stessa base di codice. Infatti, la sua architettura event-driven rende la soluzione molto più simile a Nginx

Il software utilizza meccanismi predittivi per gestire i picchi di traffico in arrivo e alleggerire il carico sul server.

Ora è il momento di confrontare LiteSpeed vs Apache e scoprire qual è il migliore:

  1. Popolarità – LiteSpeed vs Apache – Vincitore: Apache

Ci poteva essere un solo vincitore per questo fattore. Dopo tutto, Apache stava già conquistando il mercato. Quando LiteSpeed è arrivato, il suo concorrente alimentava già oltre il 50% di tutti i siti web.

In effetti, la percentuale varia a seconda della fonte di terze parti a cui ci si rivolge.

Secondo il rapporto Netcraft di aprile 2020, Apache ha già perso il primo posto a favore di Nginx, detenendo ora solo il 25% della quota di mercato

D’altra parte, il gigante dei sondaggi web W3Techs racconta una storia diversa. Il loro recente rapporto sulle statistiche di utilizzo mostra che Apache è ancora il re, con il 39% di Internet. Nginx è al secondo posto con il 31,9% e LiteSpeed è al quinto posto, responsabile del 6,4% dei siti online.

Pertanto, è chiaro che il vincitore è Apache.

  1. Prestazioni (contenuti statici) – LiteSpeed vs Apache – Vincitore : LiteSpeed

Grazie alla sua architettura asincrona, LiteSpeed è molto più flessibile con un traffico più elevato e connessioni simultanee

Utilizza una metodologia di caching intelligente in cui il sistema memorizza nella cache i file compressi, invece di creare una nuova richiesta ogni volta che l’utente cerca di visualizzarli.

In questo modo, LSWS è in grado di aumentare le prestazioni del server PHP del 50%, rendendolo infine fino a sei volte più veloce di Apache per i contenuti statici.

C’è un altro vantaggio: LiteSpeed fa miracoli quando si tratta di comprimere le pagine. In questo modo, ogni nuova richiesta non solo viene servita più velocemente, ma utilizza anche meno RAM.

Pertanto, LiteSpeed è all’altezza del suo nome.

Fonte: 8 tipi di servizi di hosting web spiegati + Infografica (sitesaga.com)
  1. Prestazioni (contenuti dinamici) – LiteSpeed vs Apache: Uguaglianza

La maggior parte dei siti web oggi sono dinamici. Utilizzano script lato server, che determinano il modo in cui il server gestisce le richieste dei diversi utenti.

I sistemi di gestione dei contenuti (CMS) sono strumenti spesso utilizzati per creare contenuti dinamici: WordPress, Magento, Joomla, Drupal… è probabile che il suo sito utilizzi una soluzione CMS

Tuttavia, non c’è un chiaro vincitore quando si mettono alla prova le prestazioni di LiteSpeed contro Apache.

Può facilmente preconfigurarlo con moduli come FastCGI e PHP-FPM. In questo modo può gestire carichi più elevati e velocizzare le sue pagine in un ambiente PHP multiutente.

LSWS è altrettanto buono, e i benchmark hanno confermato questa idea. Apache ha offerto una velocità grezza leggermente migliore, ma la compressione avanzata delle pagine di LiteSpeed le ha dato un leggero vantaggio per i siti web più grandi.

  1. Supporto del sistema operativo – LiteSpeed vs Apache – Vincitore: Apache

Il sistema operativo è un altro elemento cruciale nella configurazione del suo sito web. I server Linux sono ancora la soluzione dominante nel campo del web hosting. Pertanto, i sistemi operativi di tipo Unix sono una scelta naturale

A questo proposito, non fa molta differenza il server web che utilizza.

Apache è compatibile con tutte le versioni e le istanze del sistema operativo Linux

  • Fedora ;
  • Ubuntu ;
  • RedHat
  • Ecc

E poiché LiteSpeed utilizza Apache come base… beh, può unire i puntini.

Per gli utenti Windows, le cose cambiano.

Mentre Apache è completamente ottimizzato per le istanze Windows, LiteSpeed non è compatibile con il sistema operativo. Secondo gli sviluppatori, i sistemi Windows sono molto diversi dalle soluzioni simili a Unix e richiedono molti aggiustamenti alla configurazione esistente.

Qui Apache vince il duello.

  1. Sicurezza – LiteSpeed vs Apache – Vincitore : LiteSpeed

l’aspetto della sicurezza non deve mai essere trascurato. I rapporti sulla criminalità informatica mostrano uno sconcertante aumento del 600% degli attacchi online dal 2017, causando perdite stimate di 500 miliardi di dollari all’economia globale.

Apache viene fornito con tutto ciò che serve per proteggere un server web. Può applicare regole di sicurezza, bloccare l’accesso degli utenti o rimuovere i moduli non necessari

Inoltre, Apache cerca di seguire gli ultimi standard di sicurezza dei server, rilasciando frequentemente patch di vulnerabilità e ottimizzazioni di sicurezza.

Tuttavia, è necessaria una certa conoscenza dell’amministrazione e della riconfigurazione. LiteSpeed offre una protezione di alto livello per il sito web fin dall’inizio

Supporta le regole mod_security di Apache, quindi può aspettarsi le stesse forti difese del server.

Tuttavia, ci sono alcune cose in cui LiteSpeed eccelle, e una di queste è certamente la protezione contro la forza bruta e altri attacchi DDoS

In un test simulato, LSWS ha gestito facilmente lo stesso numero di richieste del server che prima provocava il crash di Apache.

Ogni piccola cosa conta, e LiteSpeed dovrà vincere questa volta.

  1. Supporto – LiteSpeed vs Apache – Vincitore : LiteSpeed

Confrontando il server web di LiteSpeed con quello di Apache in termini di supporto, entrambe le soluzioni dispongono di una documentazione dettagliata per chiunque sia interessato all’auto-aiuto

Naturalmente, le guide sono un po’ più orientate alla tecnica, ma anche un utente alle prime armi può trovare abbastanza materiale didattico.

Tuttavia, LiteSpeed sembra avere una comunità meglio organizzata. Oltre ai forum dedicati, gli utenti di LSWS hanno i loro gruppi su Slack e Facebook, dove spesso vengono discussi i consigli per l’ottimizzazione o risolti i problemi dei clienti.

Per quanto riguarda l’assistenza tecnica dal vivo, Apache semplicemente non ne ha. Il software è open source, quindi la comunità è l’opzione migliore per ottenere assistenza dal vivo

In confronto, LiteSpeed è un prodotto commerciale, quindi offre un’assistenza dedicata. Può facilmente inviare un ticket di assistenza dalla sua area utente, e gli operatori sono generalmente disponibili.

Può anche optare per il Supporto Premium con LiteSpeed e ottenere servizi come:

  • Installazione dei moduli
  • Configurazione dei pacchetti DDoS;
  • O la rimozione delle liste nere.

Naturalmente, questi servizi possono essere piuttosto costosi. Ad esempio, 999 dollari all’anno per la gestione del server sembrano troppo costosi per una start-up o una PMI. Ma se non ha una persona che si occupa di IT e può permetterselo, gli esperti di LSWS possono essere proprio quello che sta cercando.

LiteSpeed vince questo round grazie all’ampia varietà di opzioni di supporto e all’assistenza dedicata che offre.

  1. Premio – LiteSpeed vs Apache – Vincitore: Apache

Apache ha già il sopravvento qui. Il software è sempre stato distribuito gratuitamente, e questo è uno dei motivi per cui è una soluzione così popolare per la gestione dei server web.

Essendo una piattaforma proprietaria, LiteSpeed è un prodotto a pagamento, con prezzi che vanno da 10 dollari/mese a 92 dollari/mese ai livelli più alti. Esiste anche una versione gratuita, ma è piuttosto limitata: può supportare solo un dominio e offre circa 2 GB di RAM.

Alla fine, se il prezzo è il suo principale punto di vendita, la gratuità (Apache) batterà sempre il pagamento (LiteSpeed).

3.4. Apache vs Lighttpd

Circa 10 anni fa (mentre Nginx era ancora agli inizi), Lighttpd era un server leggero alternativo ad Apache, in quanto supportava meglio le connessioni simultanee di migliaia di utenti.

 Lighttpd

Fonte: Wikipedia

Lighttpd è un pacchetto software scritto in C da Jan Kneschke, distribuito con licenza BSD e disponibile per Unix e Linux.

Una delle caratteristiche del server web è che consuma pochissime risorse di RAM e CPU. Questo la rende particolarmente utile per i server VPS o Dedicati con poche risorse.

Supporta la comunicazione e l’integrazione con FastCGI, SCGI e CGI. Pertanto, è in grado di rispondere alle richieste di pagine effettuate in qualsiasi linguaggio di programmazione.

Uno degli svantaggi di lighttpd è che non supporta .htaccess, oltre al fatto che manca di una documentazione completa e di una comunità massicciamente adottata, a differenza dei suoi rivali Apache e Nginx.

Ecco le 7 principali differenze tra i server Apache e Lighttpd:

  1. Nginx e Lighttpd sono probabilmente i due server asincroni più conosciuti, mentre Apache è di gran lunga il server basato sui processi più conosciuto.
  2. La maggior parte dei test dimostra che l’utilizzo di Lighttpd rispetto ad Apache offre un guadagno intrinseco in termini di prestazioni.
  3. Apache supporta CGI e FastCGI. È testato e la sua implementazione non cambia da anni. Può trovare documenti che hanno più di dieci anni e sono ancora validi. Lighttpd supporta CGI e FastCGI tramite il modulo.
  4. Lighttpd supporta X-Sendfile dalla versione 1.5. Apache 1 non supporta X-Sendfile. Per Apache 2 esiste un modulo di terze parti.
  5. Lariscrittura degli URL in Apache può essere gestita in una configurazione (a livello di sito) o tramite una sostituzione nello stato .htaccess. In Lighttpd, è limitato alla riscrittura solo attraverso il livello di configurazione, il che significa che per le piattaforme come WordPress, dovrà codificare in modo rigido seguendo la regola di riscrittura del formato.
  6. Lighttpd è distribuito secondo i termini della licenza BSD modificata. Questa opzione di licenza riduce notevolmente l’attrito collaborativo tra il codice di Lighttpd e quello di altri progetti distribuiti con altre licenze. Apache utilizza l’omonima licenza Apache 2.0, che a volte è considerata “permissiva” nel senso che è una licenza open source che non è una licenza copyleft.
  7. L’installazione di PHP non è così facile in Lighttpd come in Apache, perché non esiste un modulo apposito.

3.5. Apache contro IIS

IIS(Internet Information Services – precedentemente chiamato Internet Information Server) è un server web creato da Microsoft per i suoi sistemi operativi server

Microsoft IIS

Fonte: Codice di esportazione

Sebbene sia un sistema proprietario, si basa su diversi protocolli disponibili pubblicamente, tra cui:

  • Protocollo di trasferimento ipertestuale (HTTP)
  • Il Simple Mail Transfer Protocol (SMTP);
  • E il protocollo di trasferimento dei file (FTP)

La sua prima versione è stata introdotta con Windows NT Server versione 4 e ha subito diversi aggiornamenti. Attualmente, la versione più recente è IIS 10 (disponibile solo su Windows Server 2019)

Dopo il lancio della piattaforma .NET nel 2002, IIS ha acquisito anche il ruolodigestireASP.NET

Microsoft ASP NET

Fonte: Wikipedia

ASP.NET, come il suo diretto concorrente JSP, viene compilato prima dell’esecuzione. Questa caratteristica presenta dei vantaggi rispetto alle opzioni interpretate, come ASP e PHP.

Ora, quale scegliere?

Sia Apache che IIS hanno i loro vantaggi e svantaggi

  • IIS viene fornito con Windows, ma Apache non ha il supporto delle grandi aziende
  • Apache ha un’eccellente sicurezza, ma non offre l’eccellente supporto .NET di IIS
  • Apache è gratuito e IIS non è gratuito;
  • I moduli linguistici sono più facili da installare su IIS, in quanto è sufficiente eseguire il programma di installazione;
  • IIS viene fornito con la libreria ASP, pronta ad eseguire gli script che utilizzano il linguaggio, mentre con Apache l’utente deve installare i pacchetti appropriati;
  • Ecc

Lascelta finale potrebbe essere definita dalla soluzione che meglio soddisfa le sue esigenze critiche

Anche la seguente tabella riassuntiva può aiutarla:

 Caracteristique IIS vs Apache

Ecco un breve elenco di siti e dei loro server web:

Liste de sites et leur serveur

3.6. Apache contro Caddy

Caddy è una piattaforma server web open source progettata per essere semplice, facile da usare e sicura

Scritto in Go senza dipendenze, Caddy è facile da scaricare e funziona su quasi tutte le piattaforme su cui Go si compila.

Caddy

Per impostazione predefinita, Caddy supporta l’HTTPS automatico mediante il provisioning e il rinnovo dei certificati tramite Let’s Encrypt. A differenza di Apache, Caddy offre queste funzioni in modo immediato, e viene anche fornito con il reindirizzamento automatico del traffico HTTP verso HTTPS.

Rispetto ad Apache, i file di configurazione di Caddy sono molto più piccoli. Inoltre, Caddy funziona con TLS 1.3, l’ultimo standard per la sicurezza dei trasporti.

In termini di prestazioni, Caddy ha dimostrato di essere competitivo con Apache (ma dietro a Nginx) sia in termini di richieste elaborate al secondo che di stabilità del carico.

Un altro possibile svantaggio di Caddy è che attualmente ha una quota di mercato ridotta, il che potrebbe limitare le risorse per la risoluzione dei problemi

Capitolo 4: Installazione e configurazione di Apache

4.1 Installazione e configurazione del server Apache: brevi video tutorial

Per aiutarla a vedere tutto con chiarezza, abbiamo selezionato alcuni video tutorial brevi e autoesplicativi per l’installazione e la configurazione di Apache HTTP Server:

  • Tutorial per l’installazione e la configurazione di Apache Web Server su Windows 10
  • Tutorialper installare e configurare Apache su Linux:
  • Tutorialper installare e configurare il server web Apache in Ubuntu Linux (per principianti)

4.2. Avvio di Apache

Utilizzi i seguenti comandi:

  • Per avviare il servizio Apache

sudo service apache2 start

  • Per verificare se la configurazione di Apache è valida e per ricaricarla

sudo apache2ctl configtest

sudo service apache2 reload

  • Per elencare i moduli disponibili di Apache HTTP Server

/etc/init.d/apache2 -l

4.3. Configurazione di Apache tramite .htaccess

Utilizzi il file “.htacess” per configurare alcuni comportamenti HTTP di Apache. Un’applicazione importante di questo file è il reindirizzamento di un URL verso altri URL.

Il seguente file .htacess reindirizza http://twaino.com a http://www.twaino.com. Inoltre, reindirizza l’accesso a una determinata pagina web a un’altra pagina web tramite un reindirizzamento 301

Les redirections 301

Il reindirizzamento 301 indicherà ai motori di ricerca che la pagina è stata spostata ed è il metodo consigliato per spostare le pagine web.

Ecco un video autoesplicativo che può aiutarla nella configurazione di Apache tramite .htacess

4.4. Utilizzo di moduli su Apache Http

Apache Http supporta l’uso di moduli. Per abilitare i moduli, usi a2enmod + comando. Per abilitare il modulo di riscrittura, per esempio, usi a2enmod riscrivere.

Ecco un video che spiega come abilitare/disabilitare i moduli in Apache2: https: //youtu.be/YkZC38HfOQU

4.5. Prestazioni – Abilitazione della compressione gzip

Per ottimizzare il tempo di download delle sue pagine web, può attivare la compressione gzip. Ciò richiede il modulo Apache“mod_deflate“, che può essere installato con il seguente comando:

a2enmod deflate

sudo /etc/init.d/apache2 restart

La compressione può essere attivata nel file di configurazione predefinito per questo modulo, situato in /etc/apache2/mods-available/deflate.conf o tramite la sezione “.htaccess“.

# comprime tutto il testo e l’html:

AddOutputFilterByType DEFLATE text/plain

AddOutputFilterByType DEFLATE text/html

AddOutputFilterByType DEFLATE text/xml

AddOutputFilterByType DEFLATE text/css

AddOutputFilterByType DEFLATE application/xml

AddOutputFilterByType DEFLATE application/xhtml+xml

AddOutputFilterByType DEFLATE application/rss+xml

AddOutputFilterByType DEFLATE application/javascript

AddOutputFilterByType DEFLATE applicazione/x-javascript

[Altri moduli Apache]] == Supporto per php e wordpress :

sudo apt-get install libapache2-mod-fcgid

sudo apt-get install php5-cgi

Quindi attivi i moduli corrispondenti:

sudo a2enmod fastcgi

sudo a2enmod proxy

# richiesto per il blog wordpress

sudo a2enmod rewrite

Capitolo 5: Come proteggere il server web Apache?

Proteggere il suo server web è molto importante, significa :

  • Impedendo la visualizzazione delle sue informazioni riservate
  • Proteggere i suoi dati;
  • E limitare l’accesso.

Ecco 7 cose comuni che possono migliorare la sicurezza dei suoi server web Apache:

5.1. Nascondere la versione di Apache e le informazioni sul sistema operativo

In genere, Apache visualizza la sua versione e il nome del sistema operativo negli errori.

Un aggressore può utilizzare queste informazioni per sferrare un attacco sfruttando le vulnerabilità pubblicamente disponibili nella versione di un particolare server o sistema operativo.

Per evitare che il server web Apache visualizzi queste informazioni, deve modificare il campo “ firma del server “opzione disponibile nel file di configurazione di Apache. Per impostazione predefinita è“ON”, deve impostarlo su“OFF”.

Può anche impostare“ServerTokens Prod“, che indica al server web di restituire solo Apache e di sopprimere le versioni maggiori e minori del sistema operativo.

Configuration Apache

Fonte: Unixmen

Dopo aver modificato il file di configurazione, deve riavviare/ricaricare il server web Apache per renderlo effettivo.

5.2. Disabilita l’elenco delle directory

Se la directory principale del suo documento non ha un file di indice, per impostazione predefinita il server web apache visualizzerà l’intero contenuto della directory principale del documento.

Questa funzione può essere disattivata per una directory specifica tramite la voce “direttiva opzioni“disponibile nel file di configurazione di Apache.

5.3. Disattiva i moduli non necessari

Si raccomanda di disattivare tutti i moduli non necessari che non vengono utilizzati. Può vedere l’elenco dei moduli abilitati disponibili nel suo file di configurazione apache.

Molti dei moduli elencati possono essere disattivati, come ad esempio :

  • mod_imap
  • mod_include
  • mod_info
  • mod_userdir
  • mod_autoindex ;
  • ecc

Questo perché non sono quasi mai utilizzati dai server web di produzione.

Una volta rimossi i moduli non utili, salvi il file.

Riavvii i servizi Apache con il seguente comando:

/etc/init.d/httpd restart

5.4. Limita l’accesso ai file al di fuori della directory principale del web

Se vuole assicurarsi che i file al di fuori della directory principale del web non siano accessibili, deve assicurarsi che la directory sia limitata con l’opzione“Consenti” e“Rifiuta” nel file di configurazione del server web.

Una volta limitato l’accesso al di fuori della directory principale del web, non sarà in grado di accedere a nessun file situato in qualsiasi altra cartella del suo server web. Si otterrà quindi un codice di ritorno 404.

5.5. Utilizzo di mod_evasive per confutare l’attacco DoS

Se vuole proteggere il suo server web contro il Dos (cioè il Denial of Service), deve abilitare il modulo mod_evasive

ModEvasive

Fonte: Ubiq

Si tratta di un modulo di terze parti che rileva l’attacco Dos e gli impedisce di fare tanti danni quanti ne farebbe se facesse il suo corso

Può essere scaricato qui: Scarichi il file qui.

5.6. Utilizzare mod_security per migliorare la sicurezza di apache

Questo modulo funziona come un firewall per Apache e le permette di monitorare il traffico in tempo reale. Inoltre, impedisce al server web di subire attacchi di forza bruta

modesecurity

Fonte: Solvps

Il modulo mod_security può essere installato con il gestore di pacchetti predefinito della sua distribuzione.

5.7. Limitare le dimensioni delle richieste

Apache non ha restrizioni sulla dimensione totale della richiesta http che potrebbe portare a un attacco DoS. Tuttavia, può limitare la dimensione della richiesta di una direttiva Apache “LimitRequestBody” con il tag directory

Il valore può essere impostato tra 0 e 2 GB (cioè 2147483647 byte) a seconda delle sue esigenze.

Capitolo 6: Architettura modulare del server HTTP

Il server ha un’architettura modulare composta da :

  • un Nucleo che supporta le funzioni di base comuni
  • poi una serie di moduli proprietari/di terze parti che ne estendono la funzionalità e che possono essere attivati o disattivati in un’installazione, a seconda delle necessità.

Tra i più noti ci sono auth_basic e mod_rewrite, che sono quelli più utilizzati dai programmatori. L’elenco è in realtà molto più lungo

L’elenco completo dei moduli può essere consultato nell‘indice dei moduli nella documentazione di Apache:

Apache HTTP server project

Tra i moduli più importanti troviamo i moduli MPM ( Multi-Processing-Module ) che definiscono l’architettura interna

Il modo in cui viene distribuito il lavoro può variare a seconda del modulo MPM utilizzato:

  • Prefork multiprocesso (mpm-prefork) ;
  • Lavoratore multiprocessore (mpm-worker);
  • Evento multiprocessore (mpm-event);
  • Multiprocessing ITK (mpm-itk).

Questi moduli multiprocesso (ancora chiamati MPM) sono quelli responsabili dell’elaborazione delle richieste HTTP, della gestione dei processi e dei vari thread che eseguono il servizio.

Lascelta del modulo è una decisione cruciale, in quanto determinerà se il server funzionerà correttamente o meno, a seconda dell’uso che desidera dare al server.

6.1. mpm_prefork

Il modulo predefinito utilizzato dal server per l’elaborazione è mpm-prefork. Questo modulo apre diversi processi per organizzare il lavoro

Questa è considerata la più sicura, perché ci sono alcune configurazioni e moduli che non sono sicuri da usare con l’elaborazione dei thread

Pertanto, è più sicuro utilizzare il server con mpm-prefork, che invece di aprire thread apre processi indipendenti.

Apache MPM prefork

Sebbene si guadagni in sicurezza, è anche il metodo che consuma più risorse, poiché i processi indipendenti consumano molta più CPU e memoria RAM rispetto ai thread.

6.2. mpm_worker

Questo modulo ha prestazioni migliori rispetto a mpm-prefork. La sua funzione è quella di aprire diversi processi come prefork, e ognuno di essi a sua volta apre diversi thread per rispondere alle richieste.

Fondamentalmente, ha due svantaggi

  • Il primo è che ha una gestione degli errori più scadente rispetto a prefork e se un thread fallisce, può perdere le richieste;
  • E il secondo è che non tutti i moduli disponibili sono sicuri da usare in questa modalità.

Ad esempio, il modo più semplice per effettuare una configurazione PHP in Apache è tramite mod_php, ma questo modulo non può essere utilizzato con Worker. Pertanto, deve essere sostituito da un esempio di PHP-FPM

Apache PHP FPM

Fonte: Hosting Glowfrog

Questo a sua volta comporta un miglioramento nell’utilizzo delle risorse, sia della memoria che della CPU.

6.3. mpm_evento

Event è abbastanza simile a mpm-worker, in quanto si basa su di esso. Si concentra sul miglioramento delle richieste persistenti, per le quali Worker non è così bravo.

Normalmente una connessione viene chiusa se non ha più informazioni. Per ritrasmettere una nuova connessione, è necessaria una comunicazione di andata e ritorno per stabilire alcuni parametri.

Una volta stabilita la comunicazione, è molto più efficiente mantenere il canale aperto. Questo avvieneattraversolerichieste Keep-Alive, che facilitano il mantenimento di una connessione aperta fino a quando il client o il server decidono di chiuderla.

È in questo senso che Event supera Worker e per altri aspetti condividono i vantaggi e gli svantaggi, poiché Event si affida a Worker solo per il miglioramento di queste richieste.

6.4. mpm_itk

Questo è il modulo più recente e, come Prefork (che lavora con i processi figlio invece che con i thread), l’innovazione principale di questo modulo è che permette di assegnare un utente a ciascun VirtualHost (ciascun dominio ospitato).

Questo modo di separare i siti con utenti diversi permette :

  • ogni sito deve avere i propri permessi di sicurezza;
  • e che i processi utente non possano interagire tra loro, ottenendo la riservatezza e la sicurezza dei dati.

Lo stesso si può ottenere con PHP-FPM, dove ogni sito può operare con il proprio utente

Tuttavia, la configurazione di ciascuno di essi è più macchinosa e comporta un maggiore utilizzo di memoria, poiché esiste un processo PHP-FPM per ogni sito.

Capitolo 7: Altre domande sul server Apache

7.1. Che cos’è Apache?

Apache2 HTTP Server è un server web che utilizza il protocollo http. È sviluppato dalla Apache Software Foundation (ASF). È open source, multipiattaforma (funziona su diversi sistemi operativi), gratuito e scaricabile. Il sito web del progetto è www.apache.org.

7.2. Perché Apache è così popolare?

Apache è open source e come tale è sviluppato e mantenuto da un grande gruppo di volontari in tutto il mondo. Uno dei motivi principali per cui è così popolare è che il software può essere scaricato e utilizzato da chiunque gratuitamente.

Inoltre, il server web Apache è un ambiente facile da personalizzare, è veloce, affidabile e altamente sicuro. Questo la rende una scelta comune per le migliori aziende.

7.3. Come faccio a sapere se il mio server Apache funziona?

  1. Acceda al suo server utilizzando il suo client SSH preferito.
  2. Inserisca il seguente comando: sudo service apache2 status.
  3. Se Apache è in esecuzione, vedrà il seguente messaggio Apache è in esecuzione (pid 26874).

7.4. Cosa include Apache?

Apache ha moduli per :

  • Sicurezza
  • Caching
  • Riscrittura degli URL
  • Autenticazione con password
  • E così via

Può anche regolare le impostazioni del suo server tramite un file chiamato .htaccess, che è un file di configurazione di Apache.

7.5. Come viene installato il server Apache?

Per installare apache come servizio :

  1. Nel menu di Windows, cerchi: cmd;
  2. Esegua cmd con i diritti di amministratore;
  3. Vada al sito \ apache \bin: cd c:\Apache24\bin.
  4. Installi il servizio con l’istruzione: httpd.exe -k install.
  5. Infine, avvia Apache con l’istruzione: httpd.exe -k start.

7.6. Come faccio a sapere se sto usando Apache?

Ci sono diversi modi per scoprire quale software sta utilizzando il nostro server, uno di questi è utilizzare strumenti come GTMetrix, Pingdom

Il modo più semplice sarebbe analizzare il sito web tramite Pingdom, dalla sezione Richieste di file.

7.7. Quale porta di comunicazione utilizza il server web Apache?

Per impostazione predefinita, il server HTTP Apache è configurato per ascoltare sulla porta 80 per le comunicazioni web non sicure e sulla porta 443 per le comunicazioni web sicure.

7.8. Quali sono le versioni di Apache?

Attualmente sono in funzione tre versioni di Apache: le versioni 2.0, 2.2 e 2.4. In precedenza, c’è stata la versione 1.3, che è la più conosciuta e quella che ha significato la grande espansione del server.

7.9. Come posso avviare, riavviare o fermare il server Apache?

Per avviare, arrestare o riavviare Apache come server web, deve semplicemente accedere al terminale del suo server tramite ssh ed eseguire uno dei seguenti comandi:

  1. Avvia Apache: /etc/init.d/ apache2 start.
  2. Riavvia Apache: /etc/init.d/ apache2 restart.
  3. Arresta Apache: /etc/init.d/apache2 stop . 5/5 – (3 voti)

7.come funziona Apache?

Come server web, Apache è responsabile dell‘accettazione delle richieste di directory (HTTP) da parte degli utenti di Internet e dell’invio delle informazioni desideratesottoformadi file e pagine web

La maggior parte del software e del codice web è progettato per funzionare con le funzionalità di Apache.

7.che cosa sono MySQL e PHP in Apache?

Apache è il server web che elabora le richieste e serve risorse e contenuti web tramite HTTP

MySQL è il database che memorizza tutte le sue informazioni in un formato facilmente ricercabile.

PHP è il linguaggio di programmazione che lavora con Apache per aiutare a creare contenuti web dinamici.

7.nginx può sostituire Apache?

Entrambe le soluzioni sono in grado di gestire diversi carichi di lavoro. Sebbene Apache e Nginx condividano molte qualità, non devono essere considerati completamente intercambiabili.

7.13. Nginx è uguale ad Apache?

La differenza principale tra Apache e NGINX è l‘architettura del loro design

Apache utilizza un approccio orientato al processo e crea un nuovo thread per ogni richiesta. NGINX, invece, utilizza un’architettura guidata dagli eventi per gestire più richieste all’interno di un singolo thread.

In sintesi

Come abbiamo visto in precedenza, Apache è il server web con cui lavorano migliaia di web host in tutto il mondo.

È ideale per le piccole e medie imprese che vogliono essere presenti nel mondo digitale. È molto compatibile con WordPress, che le permette di lavorare in modo semplice e ordinato.

Spero che questa guida l’abbia aiutata a valutare i pro e i contro per prendere la decisione giusta per il suo progetto!

Grazie per aver letto e a presto!

Lascia un commento