Header image per K2
Questa pagina contiene tutti gli header realizzati da me per il tema k2 di wordpress,questa galleria è in continuo aggiornamento....Leggi tutto
Dopo oltre 15 giorni di continui casini riesco a scrivere qualcosa su blog. Ragazzi non sono morto e non ho abbandonato il blog, ho solo avuto un sacco di problemi con il mio servizio di hosting. Ora tutti i problemi più grossi sono risolti, ci sono ancora dei particolari da verificare ma in linea di massima direi che il blog è tornato on-line, da oggi si ricomincia con una media di almeno un post al giorno, in modo da recuperare traffico e quindi lettori.
Come avevo anticipato in un precedente post ho cambiato l’architettura hardware che regge www.croccobiscotto.com, il mio precedente vps non mi stava dietro e scoppiava ogni due per tre. Come avete potuto notare da soli,c’erano continuamenti errori sul db e apache andava in crash di continuo. Non c’è stato modo di risolvere i problemi sul vps, ho verificato di persona che il sito in questo periodo di scarso traffico occupa mediamente un giga di ram impegnando notevolmente la cpu. Il virtual private server aveva 700 mb di ram, decisamente insufficiente per croccobiscotto.com
Ho fatto tutto il possibile per ridurre il consumo di risorse hardware, ho disattivato tutti i plugin non essenziali, ho installato e configurato wp-super-cache ma non c’è stato verso di risparmiare memoria. Il blog occupa davvero tantissima ram e cicli di cpu.
Come avevo anticipato ho optato per l’opzione frontEnd + backEnd, in pratica c’è un server vps con ip pubblico a cui punta il dominio www.croccobiscottol.it, a sua volta il vps è collegato tramite una vpn ad una rete di backend sul quale gira effettivamente il sito. Sul frontend è installato un servizio di reverse proxy che reindirizza tutte le chiamate http al backend dove sono presenti apache e mysql.
Vi anticipo già che questa soluzione mi è costata un sacco di soldi, ho investito parecchio su croccobiscotto e ho intenzione di recuperare in breve tempo traffico e visitatori..
Vi giuro che per realizzare questa architettura ho speso davvero soldi e tempo, tralaltro lo schema che vedete non è ancora del tutto completo perchè ora i servizi mysql e apache girano sulla stessa macchina.
Ma iniziamo a dare qualche dettaglio tecnico.
Per prima cosa ho cambiato servizio di Virtual Private Server sono passato da Aziende Italia a Server Plan, con 550 euro ho acquistato un “Vps Advanced” per un anno con Debian,256 mb di ram, 10 giga di spazio, cpu Xeon e un ip pubblico e ovviamente traffico illimitato.
Sono passato da Aziende Italia a ServerPlan perchè con i vps di server plan posso fare quello che voglio, posso installare tutto il software che voglio e sopratutto perchè con i vps di serverplan si possono creare le VPN (Virtual private Network) cardinale fondamentale di tutta la mia architettura. Con il vps di Aziende Italia non si possono creare le vpn e quindi sono stato costretto a cambiare servizio di hosting. Comunque uno dei prossimi post sarà proprio dedicato a ServerPlan e AziendeItalia.
Il VPS di ServerPlan rappresenta a tutti gli effetti l’interfaccia di FrontEnd della mia archiettura. Gli utenti si collegato sul mio VPS ignari di tutto quello che c’è dietro e visitano il sito come se tutti i servizi girassero su un’unica macchina fisica.
Sul VPS gira tramite OpenVPN il servizio VPN Server, le mie macchine client di backend si collegano al server di frontend che ha un ip pubblico raggiunguibile da ogni parte del mondo e da ogni configurazione.
Questa è stata una scelta dettata dal fatto che le macchine di backend si trovano dietro nat e quindi non avendo un altro ip pubblico a disposizione l’unica soluzione era quella di far girare il server openvpn sull’unico ip pubblico a disposizione cioè quello del frontEnd.
Ecco uno schemino:
Internet–> www.croccobiscotto.com (VPS server): Vpn Server<–VPN—Backend
Detto in parole povere il server VPS di ServerPlan è il randevuu point, cioè il punto di incontro raggiungibile da ogni parte del globo.
Questa soluzione è davvero efficace perchè permette un alto grado di flessibilità, le macchine della rete di beckend si possono trovare dietro nat o in dietro reti particolari ad esempio fastweb e si possono collegare senza problemi al server con ip pubblico tramite vpn, non sono quindi legate da configurazioni particolari o location fisiche.
Il server VPS ovviamente fornisce il servizio di reverse proxy,per ora non cachato, verso il backend, ciò vuol dire che tutte le connessioni dirette a www.croccobiscotto.com vengono reindirizzate ad una macchina interna.
Per il software di reverse proxy per ora utilizzo “Pound” che è opensource, gratuito, facile da configurare e da utilizzare, non lo conoscevo e credo di averci messo meno di un secondo per capire come funzionava.. anche su Pound scrivero un post apposito.
Nel prossimo futuro magari lo sostituisco con apache in modo da sfruttare anche il caching, comunque questo è uno di quei punti che affronterò per ultimo.
Passiamo ora al backend, che guarda caso si trova proprio dietro il nat di fastweb. C’è un server costruito tutto da me depositato a casa mia nella rete di fastweb che si collega al frontend e risponde a tutte le richieste. Il server di backend è a tutti gli effetti il corpo vero di www.croccobiscotto.com, perchè è lui che gestisce le richieste apache e mysql.
Se cade il sever di backend vedete un bel messaggio di errore 500 o 503 sul vostro browser, ovviamente io sto facendo di tutto perchè questo non accada mai..eheh
Ed ecco i dettagli hardware del mio server:
- cpu: Intel Core 2 Quad Q6600 Socket 775 Box
- ram: OCZ Reaper Dual Kit 4GB PC-6400 DDR2 x 2 = 8GB DI RAM!!
- mainboard: Intel Dragontail Peak – DP35DPM
- disco: 300 giga (ho usato uno che avevo in casa)
- Alimentatore Enermax da 400W (veramente silenzioso!!)
Su questra struttura hardware è installata la distribuzione linux debian lenny a 64 bit,all’interno poi vi è la Vmware Server 2.0 sempre a 64 bit. All’interno della vmware server 2.0 girano due macchine virtuali con architettura a 32bit, una macchina sql e una macchina apache.
Ora spiego questa scelta, le macchine virtuali sono imbattibili per quanto riguarda la flessibilità, possono essere spostate su qualsiasi tipo di architettura hardware, si possono fare degli snapshot e salvare i vari stati del server in maniera facile e veloce. In caso di problemi poi è un attimo tornare indietro allo stato precedente, insomma la vmware non ha rivali sotto questo punto di vista, inoltre posso distribuire e le risorse hardware con pochi semplici click.
Posso aumentare o diminuire la ram in un secondo, posso assegnare fino ad un massimo di 2 cpu per macchina virtuale e aggiungere schede di rete o porte usb in attimo. Ed infine elemento da non sottovalutare utilizzando un unico pc fisico faccio girare più macchine virtuali risparmiando anche corrente.
La scelta di creare macchine virtuali a 32 bit non è casuale, utilizzando i 32 bit in caso di emergenza posso spostare le vm del backend sui comuni pc domestici. L’architettura a 64bit non è ancora diffusa e quindi in caso di bisogno sarebbe abbastanza problematico trovare altri computer su cui far girare le vm..
Facciamo quindi una piccola paronamica sul lato software del backend.
Per prima cosa ecco una piccola analisi sul servizio vpn, per il collegamento ho utilizzato openvpn,questa soluzione è andata bene con tutti i provider sul quale ho effettuato i test, libero,alice, fastweb con contratto aziendale etc.. ma ovviamente mi ha dato un sacco di problemi con fastweb con contratto residenziale.
Dopo circa un’ora di prove e scleri ho capito che fastweb con il contratto residenziale filtra le vpn, in pratica la vpn viene su, le macchine si pingano ma qualsiasi tipo di connessione attraverso la vpn viene bloccata. Veramente assurdo, ho risolto il problema facendo un tunnell ssh. In pratica la vpn viaggia all’interno di un tunnell ssh, con questo stratagemma fastweb non riesce a filtrare e bloccare la connessione vpn. Ovviamente anche su questo argomento seguirà nei prossimi giorni un post..
Passiamo ai sistemi operativi, anche qui due macchine debian Lenny con i classici apache,php e mysql per la creazione di queste macchine ho seguito la guida “Debian Lenny Perfect Server” di How To Forge, sulla macchina apache poi ho installato anche il sistema xcache che serve per velocizzare le richieste php.
Ora croccobiscotto adotta una sistema di cache veramente tosto, c’è xcache per php con il relativo plugin per wordpress e in più c’è anche installato wp-super cache. Quindi è normale se vedete la stessa immagine di header per un po’ di tempo o se vedete il contatore delle visualizzazione delle pagine fermo, in realtà i conteggi vengono calcolati correttamente, solo che non vengono visualizzati subito.
Questa parte software è veramente tosta ed il nodo centrale del sistema e merita dei post a parte per essere tratta come si deve quindi direi che per oggi può bastare così,ci sono davvero tante tante cose da scrivere e da dire.. sui due virtual server c’è veramente tanto materiale, su come ottimizzare apache e mysql su come si implementa e si installa xcache e tanto tanto altro ancora.. quindi vi dò appuntamento ai prossimi post dei prossimi giorni (almeno uno al giorno.. devo recuperare hehe)..
Vota l'articolo
Ti è piaciuto questo articolo? allora iscrivi alla newsletter, riceverai ogni nuovo post via mail!
Loading...Se preferiferisci i feed ricordati di iscriverti ai miei Feed! 
bentornato Crocco!!!
Condivido pienamente l’utilizzo che hai fatto di vmware server…. è utilissimo e funge veramente da dio.
Beh attendiamo i prox articoli che saranno ovviamente interessanti!
Un saluto|
Welcome back!!!
Anche a me sinceramente è mancato il tuo preziosissimo blog!!!
Pensavo che passione su passione, e smanettando e smanettando, alla fine fosse scoppiato qualcosa
Scherzi a parte, mi fa piacere che sia tutto risolto, e sono sicura che tempo ed energie spese daranno presto risultati. Sei popolare, nel web.
Ciao!
io ho ancora il solito problema che per caricare la pagina iniziale del blog ci mette praticamente una vita.. il titolo lo carica subito e da li’ capisco se il blog funzia e devo aspettare o no, mentre il corpo della pagina impiega piu’ di 30 secondi per caricarsi completamente
Ohh! Finalmente.. infatti pensavo… ma che stà combinando!!!!!!!!!
PS: caspita altro che post.. è una lesson Nr 1
Bentornato!
Evviva è tornatooo!!!Bene bene bene mitico tutto il mega sistemino che hai messo in piedi ![]()
Ma avevo una domanda (giusto per rompere dato che sei stato assente un sacco): non era il caso di valutare un housing del tuo Core 2 Quad Q6600 direttamente in una bella server farm di qualche ISP?Alimentazione ridondata e garantita, clima per l’estate, banda a piacere, ecc ecc
Ci sei mancato CROCCO!!!!! Continua così!!!!!!!!!!!!!!!
Spero tu abbia installato almeno un raid 1 sul tuo server casalingo….
Ho notato comunque un certo rallentamento della visualizzazione delle pagine, sinceramente prima era meglio. Forse trasferire dati tramite una VPN rallenta tutto.. Non saprei!
E poi dimenticavo dà sempre un errore di internal server error quando spedisci il commento, mentre il tutto funziona correttamente.
ciao ragazzi grazie a tutti per il bentornato..
Piano piano sto risolvendo tutti i problemi e sto lavorando per diminutire il carico sulla vpn…
oggi faccio un po di modifiche ciaoo
[...] Proxy, uno che ospita il codice Php su Iis7 e l’altro il data base MySQL. Proprio come Croccobiscotto! Ma di questo parlerò [...]
Bentornato Crocco!
A me personalmente è mancato il tuo servizio…
Buon lavoro