Come creare un semplice server Web con darkhttpd

Come creare un semplice server Web con darkhttpd
Fotografia dello schermo di un computer che visualizza codice HTML.

Darkhttpd è un demone server web leggero e mono-binario per Linux. Fornisce un semplice modo “zero config” per distribuire siti web il più velocemente possibile sul tuo server. Qui, ti mostriamo come installare darkhttpd su Ubuntu Linux, come si confronta con i server web più popolari e ti guidiamo attraverso il processo di creazione del tuo primo sito web.

Darkhttpd contro Apache contro Nginx

Darkhttpd non è l’unico server web che puoi installare sulla tua macchina Linux. Ci sono Apache, Nginx, Caddy, Lighttpd e molti altri. In questa sezione, confronteremo darkhttpd con Apache e Nginx e vedremo come si comporta.

Per quanto riguarda la facilità d’uso, darkhttpd batte nettamente sia Apache che Nginx. Darkhttpd si concentra sul mantenere tutto su un singolo programma. Ciò significa che puoi condividere il tuo sito web senza preoccuparti della sua configurazione e del servizio init del tuo sistema.

Un terminale che mostra l'output della guida di darkhttpd.

In termini di sicurezza, darkhttpd usa un chroot per i suoi file. Ha anche timeout automatici per connessioni inattive e logging di base. Questo è ben lontano rispetto ad Apache e Nginx. Entrambi hanno potenti filtri di limitazione della velocità e opzioni per mettere a punto le intestazioni HTTP sui loro siti.

La semplicità di Darkhttpd lo rende anche poco flessibile alle richieste personalizzate degli utenti. Gli sviluppatori del programma lo hanno progettato come un modo veloce per servire contenuti web statici. Ciò significa che, rispetto ad Apache e Nginx, darkhttpd non può eseguire script CGI o fungere da proxy inverso per le tue app.

Un terminale che mostra un esempio di configurazione del proxy inverso per Nginx.
Categoria httpd scuro apache Nginx
Facilità d’uso Non richiede alcuna configurazione aggiuntiva per ospitare siti web. Per funzionare, richiede sia la configurazione di sistema che quella specifica del sito. Per funzionare, è necessaria una configurazione specifica del sito.
Sicurezza generale Dotato di funzionalità di base chroot e logging. Dotato di limitatori di velocità e intestazioni HTTP incentrate sulla sicurezza. Dotato di limitatori di velocità e intestazioni HTTP incentrate sulla sicurezza.
Supporto SSL Nessun supporto SSL integrato. Fornito con “mod_ssl” per il supporto SSL. Dotato di supporto SSL integrato.
Flessibilità applicativa Può funzionare solo con contenuti web statici. Può funzionare sia con contenuti web statici che dinamici. Può funzionare come server web, bilanciatore di carico e proxy inverso.

Preparazione del sistema per darkhttpd

Il primo passo per creare un sito web con darkhttpd in Ubuntu Linux è ottenere le dipendenze per Docker e Docker Compose.

Iniziamo scaricando la chiave di firma per il progetto Docker:

Utilizza il tuo editor di testo preferito per creare un nuovo file di repository:

Incolla la seguente riga di codice all’interno del tuo file repository:

Ricarica i repository dei pacchetti della tua macchina e aggiorna l’intero sistema:

Installa Docker, il suo plugin Compose e Git usando apt:

Un terminale che mostra il processo di installazione di Docker, dei suoi plugin e di Git.

Installazione ed esecuzione di darkhttpd

Vai alla tua directory home, quindi scarica l’ultima versione di darkhttpd sul tuo sistema:

Vai all’interno del repository Git, quindi crea un nuovo file Docker Compose utilizzando il tuo editor di testo preferito:

Incolla il seguente blocco di codice all’interno del tuo file Compose:

Salva il nuovo file Compose, quindi esegui il seguente comando per creare ed eseguire il tuo contenitore Docker darkhttpd:

Crea una cartella “html” all’interno del repository Linux darkhttpd, quindi copia i file statici del tuo sito web al suo interno:

Verificare che darkhttpd funzioni correttamente elencando i contenitori disponibili nel sistema:

Un terminale che mostra il contenitore Docker darkhttpd in esecuzione nel sistema.

Esecuzione di darkhttpd su SSL con stunnel

A questo punto, hai un server darkhttpd in esecuzione sulla porta 8080. Tuttavia, per accedervi tramite Internet, devi prima incapsularlo in SSL tramite un proxy inverso.

Per iniziare, crea un nuovo record DNS “A” per il tuo dominio che punti all’indirizzo IPv4 del tuo darkhttpd. Nel mio caso, punterò l’indirizzo IPv4 della mia macchina al record: “web.myvpsserver.top”.

Scarica e installa stunnel, il pacchetto snap “core” e Certbot sul tuo computer:

Registra la tua istanza darkhttpd presso l’Electronic Frontier Foundation:

Genera un certificato SSL nudo per il tuo nome di dominio:

Un terminale che mostra il processo di generazione del certificato SSL in LetsEncrypt.

Crea un nuovo file di configurazione per il tuo proxy inverso stunnel:

Incolla il seguente blocco di codice all’interno del tuo nuovo file di configurazione:

Salva il nuovo file di configurazione, quindi esegui il seguente comando per avviare il proxy inverso:

Un terminale che mostra lo stato attuale del servizio stunnel nel sistema.

Verifica che il tuo sito web statico funzioni correttamente aprendo il tuo sottodominio su un browser web.

Uno screenshot che mostra il sito web di esempio in esecuzione su darkhttpd con SSL.

Ospitare il tuo semplice sito web usando darkhttpd è solo il primo passo per esplorare il meraviglioso mondo dei servizi web self-hosting. Scopri come puoi creare Feed RSS per i tuoi social media usando RSS-Bridge.

Credito immagine: Ilya Pavlov tramite Unsplash . Tutte le modifiche e gli screenshot sono di Ramces Red.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *