• User

    load balancing o che altro fare..

    Salve a tutti avrei un dilemma,

    ho un sito internet che fa girare uno script di un servizio abbastanza pesantuccio, il server non è dei più potenti perciò vi ho affiancato un altro server che gestisce il database in modo da alleggerire il carico,

    volevo affiancare al main server dove gira lo script (e che ha forti sollecitudini di cpu) un altro server identico in modo che l'utenza venga smistata tra i due server, conoscete un modo per poter fare questa cosa? In pratica che un utente inserendo il dominio nel browser viene rediretto in random all'uno o l'altro server. Sono dietro cloudflare e il carico che porta un utente è sempre più o meno uguale quindi una divisione del traffico sarebbe perfetta.

    Cambiare server mettendone uno più potente sarebbe un palliativo in quando in futuro se il traffico cresce mi ritroverei nella solita situazione, quindi preferisco cominciare a capire come fare già da subito.

    Uso ubuntu server 12.10 a 64bit.
    Ogni consiglio è utile. A presto.


  • Moderatore

    Bisogna fare il load balancing in effetti. O metti un reverse proxy o usi iptables su uno dei server ( quello accessibile da internet ) e invii parte del traffico all'altro server. Qualcosa del genere insomma http://lartc.org/autoloadbalance.html


  • User

    @paolino said:

    o usi iptables su uno dei server ( quello accessibile da internet ) e invii parte del traffico all'altro server.

    ecco questo è interessante, in pratica il 'server 1' redirige traffico verso le macchine 'server2' e 'server3'. Lo fa in maniera random giusto? Il dominio però sarà sempre lo stesso o dovrà essere un subdominio? Perchè avrei problemi a far girare un subdominio per via della licenza dello script..

    (ho comprato mega****r.it da te vero? :=) )


  • ModSenior

    Si potrebbe utilizzare anche un round robin dns.


  • User

    grazie dark, sembra molto interessante non ne avevo mai sentito parlare, teoricamente fa davvero al caso mio.


  • User

    forse potrebbe essere più semplice del previsto:
    support.cloudflare.com/entries/22077238-Can-I-use-round-robin-DNS-entries-


  • User Attivo

    @dk-wamp said:

    ecco questo è interessante, in pratica il 'server 1' redirige traffico verso le macchine 'server2' e 'server3'. Lo fa in maniera random giusto? Il dominio però sarà sempre lo stesso o dovrà essere un subdominio? Perchè avrei problemi a far girare un subdominio per via della licenza dello script..

    (ho comprato mega****r.it da te vero? :=) )

    forse la problematica maggiore che potresti trovare è la sincronizzazione dei dati per il webserver tra il pool di server, se hai upload da web.


  • User

    non è un problema perchè i file vengono gestiti in un file server, li ci sono solo i 'cervelli'


  • User Attivo

    Se e ripeto se il costo totale non è un grosso problema, ti suggerisco quanto segue:
    1 server "scarso" che faccia da balancer
    2 server "medi" che forniscono i servizi.

    Sul balancer installi Xr (htt*://crossroads.e-tunity.com/) che ti permette di assegnare i "pesi" dei server interni e, ovviamente, di smistare il traffico. Non serve chissà che hardwre perchè lavora sul traffico, poca elaborazione e non serve chissà che spazio hard disk, quindi anche un 4 core scarso con solo 2 Gb di Ram e un disco da 120 Gb bastano e avanzano

    Sui due server interni invece configuri o un ispconfig in mirror (ci sono guide su Internet) oppure, a manina, metti MySql in replica master-master, installi unison per la sincro dei dati web e, bene o male, sei a posto.

    In questo modo eviti il round-robin dei Dns o, peggio, la casualità (se imposti due record A identici ma su due Ip diversi, la risposta data al client è totalmente casuale), hai un buon sistema per gestire il traffico in base al peso dei server e volendo al carico e alla disponibilità, in più la parte interna resta protetta dal resto del mondo, basta un "banale" firewall software

    Se serve una mano, sono qui (ne ho già fatti alcuni di questi servizi e funzionano a meraviglia)