La mia avventura inizia non molto tempo fa, quando iniziai ad appassionarmi al mondo del web, forse per merito del buon Colace e del suo bel voto. Da bravo programmatore ho sempre evitato come la peste tutto ciò che riguardasse il web: php, javascript, ruby, python (anche se questi possono essere usati anche senza un webserver) sono linguaggi interpretati e pertanto rappresentano il male assoluto per un fissato con l’ottimizzazione come me. O meglio: rappresentavano.
Quando apprendi qualcosa, volente o nolente, questa influenza inevitabilmente ciò che crei o hai creato. Te la fa guardare con occhi diversi, ed è quando trovi qualcosa di migliore che ciò che avevi creato e che consideravi buono inzia di colpo a fare schifo. Uno di questi esempi è HttpSMS, un client web-sms per Android, creato un po’ di tempo fa da me quasi per noia. Mi sono reso conto che forse un po’ di CSS qua e la poteva non essere una cattiva idea, perché anche l’occhio vuole la sua parte; così come un po’ di JS qui e un po’ la avrebbe reso tutto migliore, non costringendo l’utente a ricaricare la pagina e così via. Ed ecco lo schifo che arriva. L’HTML puro sa di vecchio, ormai. Siamo nel 2015 e che cazzo.
Lo stesso è accaduto quando ho iniziato ad approcciarmi al mondo dell’hosting. Son partito con 1and1, un managed hosting molto diffuso, che nonostante il prezzo contenuto offre discrete possibilità. Spazio illimitato, account email, mysql e così via sembrano tutto ciò che si può desiderare; eppure…
Eppure no.
Man mano che il tempo passava iniziavano a saltar fuori le magagne, ovviamente non risolvibili perché si sa, se sei managed sei nelle loro mani, che un po’ come quelle del “signore” si muovono molto lentamente o non si muovono affatto. Tra queste troviamo:
- La app per Android di WordPress manda in pappa il server e bisogna aspettare qualche minuto che si riprenda (?!?)
- Banditi i certificati ssl custom. Con StartSSL che li regala, devo pagarli 50€ l’anno + iva l’uno… CERTO!
- Server tutt’altro che scattante
- Se avete qualche problema è colpa vostra e non faranno un beneamato cazzo se non mandarvi email in cui vi chiedono se sei soddisfatto dell’assistenza
- Il filtro spam è fin troppo aggressivo
- I cambiamenti alle impostazioni richiedono tempi che vanno dai 5 minuti alle 6 ore
- Le porte in uscita sono chiuse, 80 e 443 a parte. Se vuoi inviare una mail in php via smtp puoi anche scordartelo
Ovviamente ci sono anche molti pregi, non fraintendete, ma lo scopo di questo post è spiegare perché li ho lasciati. Il fatto che ti mantengono il dominio, che comunque è managed (se sei inesperto è un pregio), che per essere shared ha prestazioni costanti eccetera sono tutti buoni motivi per sceglierli se il prezzo e la semplicità sono d’obbligo.
Lasciare 1and1 significava rivolgersi al mondo unmanaged, il che a sua volta significava imparare a fare qualcosa che è tutt’altro che semplice, sia perché linux sa essere un gran bastardo, sia perché a meno che non vuoi vederti bucato 10 minuti dopo aver messo tutto online, è buona norma prendere delle precauzioni.
Per avvicinarmi a questo mondo ho ben deciso di installare il necessario sul mio Desktop ormai in disuso da un bel po’ (spoiler: non lo è più!). Il problema è che seppur avendo una linea stabile e costante, come la maggior parte delle linee domestiche è asincrona, con solamente 512k di upload: decisamente troppo poco per soddisfare la grande esigenza di un webserver.
Dopo un po’ inizio a stufarmi ma ecco che ci viene in aiuto CloudFlare. Cos’è? CloudFlare è una azienda che tra i servizi più rinomati offre gestione DNS, SSL (parziale o totale) e Caching di uno o più siti web, gratis. Bene mi dico, hanno tutto ciò che serve. Il Caching poi è disponibile sia per le pagine statiche che dinamiche. Avviene nei loro server sparsi per il mondo ed è veloce. O almeno dovrebbe.
La verità è che fin quando non ho attivato CF, i miei siti di test non hanno mai avuto problemi di funzionamento. Dopo qualche giorno con CF invece ho iniziato ad avere strani problemi di connessione, con la loro pagina di errore che mi informava che l’host era offline. Problema: non era vero. La loro assistenza ovviamente ha detto che era colpa del mio server, un i7 sgombro e dedicato, ma che soprattutto senza CF in mezzo funzionava perfettamente.
Bene mi son detto, qui è ora di cambiare. La loro gestione DNS è eccellente, tra le più veloci che io abbia mai visto, ma il proxy è a dir poco mediocre e non supporta protocolli diversi dall’HTTP. Investigando infine ho scoperto un’altra cosa poco carina: a dispetto delle vostre impostazioni se un file non viene richiesto per qualche ora viene cancellato dalla cache, vanificando completamente gli effetti per i siti poco frequentati.
Le aziende alternative poi sono poco interessanti per i prezzi decisamente esagerati (Incapsula: 60$/mese per sito…) o per la mancanza di funzioni che ritengo indispensabili.
La mia soluzione? Una VPS! Sembra scontato ma non lo è. Nginx permette di creare un reverse proxy con supporto SSL e cache locale pienamente configurabile come vi pare e supporta cose tipo il WAF (mod_security) che su wordpress son quasi d’obbligo. Postfix (archivio temporaneo e smistamento posta) e haproxy poi completano l’opera.
Indovinate un po’? I rallentamenti sono spariti.