0
1

Con l'aumentare delle offerte di vps mi viene sempre più voglia di abbandonare i servizi di hosting in favore di vps. Sino ad ora ho usato vps come gandi e cloudatcost per progettini WEB temporanei e non critici. Ora vorrei provare a creare una configurazione che mi permetta di mettere mano al server solo per manutenzioni straordinarie. Tralasciando l'installazione di apache php mysql postgres python e quant'altro usato dai framwork tipo drupal o prestashop, quali dovrebbero essere i software minimi da avere senza caricare troppo le prestazioni di un server vps da diciamo 2gb di ram?

Mettiamo caso di voler realizzare un sito in drupal.. Quali accortezze usare per il php, quali per apache? NGX può essere un alternativa per sfruttare le sue funzionalità di mail e proxy. Installa spam assasin? Quale server mail e quali particolari configurazioni? Quale alternativa al Cpanel? Log Rotate? Log Backup?

Intendetemi.. non sto chiedendo "il perfect server" come la guida che mi ha illuminato ma confuso ancora di più le idee. Ma una serie di strumenti da installare su server ubuntu per poter poi concentrarsi solo sullo sviluppo web.

Replicare in piccolo quello che fa chi crea servizi di hosting

Prometto che raccolgo tutto e farò una guida.

Un passo successivo sarebbe fare un layer o metapacchetto per semplificare l'installazione a chi avrà la stessa esigenza.

chiesto 07 Ott '14, 14:52

Marco%20BRUNO's gravatar image

Marco BRUNO
226101421


Configurare SSH per un accesso più sicuro
La prima cosa da fare una volta ottenuto un server è sicuramente riconfigurare SSH per poter avere una maggiore sicurezza. È consigliato prima creare un secondo account sulla macchina (adduser nome_account) da usare poi per accedere alla stessa, evitando di usare root direttamente.
Il file di configurazione di SSH è posizionato in /etc/ssh/sshd_config. Una delle impostazioni fondamentali è PermitRootLogin, che dovrebbe essere impostato su no per impedire l'accesso diretto con l'account di root. Se si vuole poi accedere solo tramite chiavi RSA (consigliato) impostare PasswordAuthentication su no.


Configurare il firewall
Il firewall è uno dei componenti più importanti in un server, in quanto permette di bloccare l'accesso alle porte non esposte agli utenti, evitando numerose falle di sicurezza. È possibile utilizzare IPTables (più avanzato ma anche più ostico per chi lo vuole imparare) o UFW (molto più semplice, è un front-end IPTables).
Se si vuole un firewall semplice da usare allora è meglio UFW. È possibile installarlo con il comando:

apt-get install ufw

Una volta installato è possibile configurare le policy:

ufw default deny incoming # Bloccare le richieste in entrata
ufw default allow outgoing # Abilitare le richieste in uscita

E poi abilitare le singole porte:

ufw allow 1/tcp # Abilitare la porta 1 TCP
ufw allow 1/udp # Abilitare la porta 1 UDP

Alla fine si può abilitare il firewall (ricordarsi di autorizzare la porta 22!!!):

ufw enable

Alcuni consigli vari :-)

nginx al posto di apache2
apache2 è molto potente e ha tantissime funzionalità, ma per un uso normale spesso occupa troppe risorse. nginx invece dispone solo di ciò che è necessario per il 90% dei casi, consuma meno memoria e la configurazione è più ordinata (parere personale).

php5-fpm al posto di mod_php5
Il pacchetto php5 installa in realtà un modulo di apache2, che non è sempre la scelta migliore. php5-fpm è invece un processo separato e indipendente da apache2 con diversi vantaggi: il primo è la possibilità di creare diverse istanze eseguite da utenti diversi, in modo che se un sito venisse compromesso quelli di proprietà degli altri utenti siano protetti (ciò implica che ogni sito deve essere eseguito da un'istanza diversa, di proprietà di utenti diversi); il secondo vantaggio è la possibilità di definire un numero variabile di processi in attesa di richeste, per risparmiare risorse durante i momenti con poche visite.

Auto-deploy dei siti tramite git
git è un popolare VCS (sistema di controllo di versione), che oltre a semplificare notevolmente lo sviluppo, permette di creare hook che vengono eseguiti quando carichi il codice sul server remoto. E' lo stesso sistema che usiamo noi di Ubuntu-it per i nostri portali.
Sul mio vps ho infatti implementato un semplice server git con un repository per ogni sito, e un hook che quando carico il codice automaticamente copia tutti i file alla loro posizione definitiva e riavvia ciò che bisogna riavviare (niente se il progetto è in php ma - per esempio - gunicorn o altri server wsgi per python). Questo è molto comodo per automatizzare l'aggiornamento dei siti senza dover fare login sulla macchina.


Ho marcato la risposta come wiki, se avete altri suggerimenti modificatela in modo da avere tutto in un unico posto :-)

coll. permanente
Questa risposta è segnata come "wiki".

ha risposto 07 Ott '14, 18:50

pietroalbini's gravatar image

pietroalbini ♦♦
3.1k2947

modificato 09 Ott '14, 21:25

Grazie Pietro! Immaginiamo di aver fatto una fresh install di ubuntu server. Configurare tutto il server di hosting e dare il comando history :-)

Cosa potremmo notare?

Sicuramente ci sono mille modi per configurare un vps come server hosting. Ma se provassimo a fare un "caso studiato"? per integrare questo wiki?

Forse mi sbaglio ma penso che molti utenti potrebbero usarla come base di studio.

(08 Ott '14, 09:24) Marco BRUNO Marco%20BRUNO's gravatar image

Molti utenti che iniziano a tirarsi su le maniche credo possano trovare "didattico" un esempio concreto.

Mi sono rivolto qui perchè in rete c'è molta gelosia sulle proprie conoscenze e le classiche risposte sono ehh ma se vuoi fare hosting hai bisogno di anni di studio ehh meglio affidarsi a professionisti ehh qua ehh la

Io sono dell'idea che da qualche parte anche con un risultato pessimo si debba iniziare. E ti ringrazio quindi per le dritte!

Un vecchio giornale di informatica (bit) esordì una volta con un editoriale "Quando l'ottimo significa quasi buono"

(08 Ott '14, 09:24) Marco BRUNO Marco%20BRUNO's gravatar image

Hey @Marco BRUNO premetto che non sono un grande fan di pannelli vari, preferisco i vecchi e buoni file di configurazione :P
Adesso provo a scrivere due cose veloci su come configurare.

(09 Ott '14, 21:00) pietroalbini ♦♦ pietroalbini's gravatar image

Concordo. Più che i pannelli e wizard mi interessa proprio capire il perche usare determinati strumenti. Perciò file d configurazione come se piovessero. Poi se riesco a farlo e funziona tento una spiegazione for semi dummies.

(09 Ott '14, 21:10) Marco BRUNO Marco%20BRUNO's gravatar image

@Marco BRUNO ho iniziato a scriverla ;)
Domani la proseguo

(09 Ott '14, 21:34) pietroalbini ♦♦ pietroalbini's gravatar image

Invito altri utenti a darci una mano!!

(10 Ott '14, 08:27) Marco BRUNO Marco%20BRUNO's gravatar image

Ciao! In alcuni vps che utilizzo ho testato cwp su piattaforma centos. Devo dire che è disarmante la semplicità di installazione. rimane poi da configurare a manina la chiusura di alcuni servizi per poterci lavorare solo tramite vps per sicurezza. Sta di fatto che sembra di avere una gestione come quella che offrono i grandi fornitori con cpanel. C'è qualcosa di analogo su ubuntu?

(21 Lug '15, 08:58) Marco BRUNO Marco%20BRUNO's gravatar image

@Marco BRUNO non sono molto ferrato sui pannelli di gestione, scusa :)

(21 Lug '15, 12:46) pietroalbini ♦♦ pietroalbini's gravatar image

qualcun altro che ci da una mano? La confusione aumenta. I vari stack bitnami, i docker, linux container mi stanno deconcentrando dall'obbiettivo iniziale:

"Replicare in piccolo quello che fa chi crea servizi di hosting."

Forse devo rassgnarmi a usare xampp? E che mi piacerebbe proprio riuscire ad avere un caso di studio. Una vps, facilmente replicabile, che faccia da hosting per tutti i vari drupal, crm, owncloud etc, per fare sviluppo prima di entrare in produzione.

(24 Dic '15, 09:51) Marco BRUNO Marco%20BRUNO's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×54
×7
×1

domanda posta: 07 Ott '14, 14:52

domanda visualizzata: 2,165 volte

ultimo aggiornamento: 24 Dic '15, 09:51

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.