Come configurare al meglio il file httpd.conf di Apache

Argomenti trattati:
Pubblicato il: 11 Marzo 2021

Guida Apache2

In questa guida vedremo come configurare Apache per servire una semplice pagina HTML.

Prima di iniziare è bene indicare le specifiche del sistema sul quale verranno effettuate le operazioni descritte nel tutorial. Il Sistema Operativo è Debian 10.0, o Debian Buster. Buster come il cagnolino di Toy Story, le release di Debian prendono il nome dai personaggi del celebre film d’animazione. La versione di Apache installata è la 2.4.38.

Creazione file index.html

Spostiamoci in /var/www/html, e creiamo un file index.html digitando:

touch index.html

Il nome del file è molto importante: Apache di default è settato per servire file il cui nome è index, mentre l’estensione può essere html o php: assegnando un nome diverso si otterrà un errore. Naturalmente  si può modificare questo comportamento del server, nel prosieguo vedremo come.

Apriamo il il file appena creato, e copiamo e incolliamo:

<h1>Hello World<h1>

In genere questo è sufficiente a far comparire Hello World sulla pagina raggiungibile dal browser all’indirizzo:

http://localhost

In molti casi, potrebbe essere già presente un index.html che mostra delle informazioni su Apache2.

A cosa serve il file .htaccess?

Il file htacces è un documento testuale che serve per svolgere delle operazioni a livello di directory. In altre parole, questo documento detta delle regole al server, gli da indicazioni su cosa fare e come deve funzionare. Ogni volta che il server riceve una richiesta, esegue una scansione per trovare eventuali file htaccess all’interno della directory. I file .htaccess generalmente servono a dare indicazioni sul percorso di un contenuto, o a capire se è necessaria una password per accedere a pagine protette.

Vediamo qualche esempio.

Cambiare nome del file da servire

Abbiamo già visto che Apache, di default serve il file index.html, tramite htacces possiamo dirgli di servire un file che abbia un nome diverso. Creiamo il file .htaccess in /var/www/html e inseriamo la stringa:

DirectoryIndex nome_a_scelta.html

Ora verrà servito nome_a_scelta.html, anzichè index.html.

Fare un reindirizzamento 301

Forziamo tutte le richieste HTTP per esempio.com a essere redirette su www.esempio.com

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.esempio.com$ [NC]
RewriteRule ^(.*)$ http://www.esempio.com/$1 [L,R=301]

Fare un reindirizzamento da HTTP a HTTPS

Utilizziamo queste righe di codice per dirottare tutto il traffico dalla porta 80 alla porta 443, forzando quindi l’utilizzo del protocollo HTTPS.

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

File di configurazione Apache2: dove si trovano?

In Debian e derivate (come Ubuntu), i principali file di configurazione di Apache si trovano in:

/etc/apache2

in Centos e ltre derivate Red Hat, potrebbero trovarsi in

/etc/httpd

Il contenuto di /etc/apache2 è il seguente:

apache2.conf   envvars      magic  mods-enabled/   sites-available/
conf.d/  httpd.conf   mods-available/ ports.conf  sites-enabled/

Come possiamo vedere, troviamo dei file di testo e alcune sottocartelle. Con alcuni di essi bisogna familiarizzare si vuole utilizzare al meglio il server:

  • apache2.conf: Questo è il principale file di configurazione. Quasi tutte le configurazioni possono essere eseguite modificando questo file.
  • ports.conf: Viene usato per specificare le porte sulle quali sono in ascolto i virtual host. Bisogna fare particolare attenzione quando si usano certificati SSL.
  • conf.d/: Directory usata per controllare aspetti specifici di Apache. Ad esempio, è spesso utilizzata per definire le configurazioni SSL e altri aspetti riguardanti le politiche di sicurezza.
  • sites-available/: Contiene tutti i file relativi ai virtual host che definiscono i vari siti che si possono avere. Attraverso questi file viene stabilito quale contenuto deve essere servito in base alla richiesta. Qui dentro troviamo che non coincidono per forza le configurazioni disponibilicon quelle attive.
  • sites-enabled/: Viene usata per definire i virtual host che sono realmente in uso. Tipicamente troviamo dei link simbolici a file contenuti in site-available.
  • mods-[enabled,available]/: Sono cartelle molti simili a sites-enable e sites-available ma definiscono invece i moduli che possono essere caricati.

La configurazione di Apache non ha luogo in un unico file monolitico, avviene con un design modulare nel quale possono essere aggiunti e/o modificati i file dei quali si necessita.

Esempi

Cambiare porta di Apache

Supponiamo di voler cambiare la porta sulla quale il server è in ascolto, di default questa è la 80, cambiamola con la 8000.

Sul sistema in esame (Debian) dovremmo modificare il file

/etc/apache2/port.conf

cambiando  Listen 80 con Listen 8000, se utilizzate Centos o derivate Red Hat, apportate la modifica in

/etc/http/conf/httpd.conf

Editiamo anche /etc/apache2/sites-enabled/000-default.conf sostituendo

<VirtualHost *:80>

con

<VirtualHost *:8000>

A questo punto la nostra pagina sarà raggiungibile all’indirizzo

http://server_ip:8000

Cambiare il ServerName

Di default il server name, il nome da digitare nella barra degli indirizzi per ragiungere il nostro sito, è localhost, può essere però personalizzato.

Apriamo /etc/apache2/sites-enabled/000-default.conf e aggiungiamo

ServerName custom.name

Non abbiamo finito, dobbiamo modificare anche /etc/hosts, questo non è un file di Apache ma fa parte di Debian, apriamolo e modifichiamo la riga

/etc/hosts 127.0.0.1 localhost

aggiungendo custom.name

/etc/hosts 127.0.0.1 localhost custom.name

SMSHosting Codice PROMO: PRT96919 Servizio di SMS Marketing - Per inviare SMS promozionali a basso costo Scopri il servizio

Ora, tramite browser, potremmo raggiungere l’indirizzo http://custom.name e visualizzeremo la nostra pagina HTML.

Questa non è altro che una piccola introduzione ad Apache2, corredata da qualche esempio, l’argomento è molto vasto. Nei prossimi tutorial, illustreremo meglio altri aspetti del web server.

5/5 (5)

Che te ne pare?

Grazie per aver letto Come configurare al meglio il file httpd.conf di Apache di Carmelo Marasco su Trovalost.it
Come configurare al meglio il file httpd.conf di Apache (Guide, Configurazione Hosting)

Articoli più letti su questi argomenti: