Vincenzo Ingrosso Weblog
  • System Admin
  • Random Post
  • Authors
  • Become an Author
  • Messages Box
  • Crumbs!
  • Privacy Policy
  • About me
  • Contact
Facebook Page
  • Authors
  • Become an Author
  • Messages Box
  • Crumbs!
  • Privacy Policy
0 Likes
0 Followers
0 Followers
Iscriviti
Vincenzo Ingrosso Weblog
Vincenzo Ingrosso Weblog
  • System Admin
    • Debian & Sysadmin
    • Server
    • Bash
    • Ispconfig
    • Mac OSX
  • Random Post
  • About me
  • Contact
  • Bash
  • Debian & Sysadmin
  • Ispconfig

Ispconfig : how to migrate from Apache to nginx

  • 17 Ottobre 2014
  • Vincenzo Ingrosso
Total
0
Shares
0
0
1

È giunto il momento! Dal passaggio a WordPress il mio unico imperativo é: anche le pagine più complesse devono essere servite velocemente!
Ho letto (non è vero), studiato (ma anche no), insomma senza alcuna documentazione mi sono imbattuto nella folle avventura di sostituire (on the fly) Apache con nginx in ambiente Ispconfig3!
Subito la prima cosa: questo howto è fornito così com’è.
Fate un backup di qualunque cosa prima di ogni modifica perché non rispondo di vostri eventuali errori! Con un backup potrete tornare indietro, senza fare backup non iniziate neanche a seguire i prossimi passi!
Adesso basta sono stato anche troppo lungo nella raccomandazione!

Cosa avevo io:

  1. 20 siti web funzionanti sotto Apache con php5 etc etc..
  2. Varnish come Reverse Proxy;
  3. Ispconfig che gestiva il tutto.

Cosa non mi piaceva:

  1. dover usare sempre i file .htaccess per qualque cosa. Minificavo CSS e JS e mi ritrovavo con file .htaccess enormi!!!
  2. le pagine venivano servite lentamente rispetto al contenuto.

Cosa avrei voluto avere:

  1. una configurazione quasi unica che mi permettesse di avere pagine veloci e semplicità di utilizzo del server web!
  2. … credo basti così no?!.

Domanda: sicuro che nginx faccia alcova tuo? No, non lo so ma ho visto, letto, un post che mi ha convinto a fare il passaggio.

Iniziamo!

APACHE

Il passaggio di per se è molto semplice. La parte complessa verrà dopo e NON la tratterò oggi, mi riservo di scrivere il mio personale post su come configurare la meglio nginx, fasycgi_cache, memcache e w3 totatl cache per WordPress!

La cosa meravigliosa è che mentre noi lavoreremo potrete continuare ad avere attivi i siti web!!!

Fermate eventuali firewall; è la cosa più semplice perché non dobbiate aprire chiudere porte, rischiando di fare qualche sciocchezza.

i file che andranno modificati per Apache sono: /etc/apache2/ports.conf e tutti i file nella directory /etc/apache2/sites-enabled/

il primo è semplice:

vi /etc/apache2/ports.conf

 

modificate perche somigli a qualcosa di simile:

Listen 8000

<IfModule mod_ssl.c>
Listen 8043
</IfModule>

<IfModule mod_gnutls.c>
Listen 8043
</IfModule>

 

Insomma dovete cambiare le porte di ascolto per i protocolli http e https.

Questo file è stata la parte più complessa! Adesso

cd /etc/apache2/sites-enabled/
sed -i 's/<80>/8000/g' *
sed -i 's/<443>/8043/g' *

 

in questo modo avete cambiato le porte di ascolto di apache ma la modifica non sarà attiva fino a quando non riavvierete apache. Perché questo continui a servire i nostri siti mentre noi lavoriamo basterà redirigere tutto il traffico in arrivo sulle port :80 e :443 su quelle nuove. In aiuto nostro viene la tabella di pre-routing del kernel.

Ora, grazie a iptables (se non è installato, provvedete!) faremo la magia:

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8000
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8043
service apache2 restart

verificate che il comando

iptables -n -L -t nat

vi restituisca qualcosa di simile

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
REDIRECT   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80 redir ports 8000
REDIRECT   tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443 redir ports 8043

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

NGINX

Adesso siamo liberi di procedere a installare nginx. Useremo la versione con il supporto per fastigi-cache e quindi aggiungeremo un repository alla nostra lista:

apt-get install python-software-properties
add-apt-repository ppa:rtcamp/nginx
apt-get update
apt-get install nginx-custom

Se dopo aver dat apt-get update dovreste ricevere un errore simile

...
W: Impossibile recuperare http://ppa.launchpad.net/rtcamp/nginx/ubuntu/dists/wheezy/main/source/Sources  404  Not Found                                                                                                                                                                                 

W: Impossibile recuperare http://ppa.launchpad.net/rtcamp/nginx/ubuntu/dists/wheezy/main/binary-i386/Packages  404  Not Found

E: Impossibile scaricare alcuni file di indice: saranno ignorati o verranno usati quelli vecchi.

verificate il file /etc/apt/sources.list.d/rtcamp-nginx-wheezy.list e sostituite wheezy con il nome della versione corrispondente di Ubuntu. Io ho usato quantal.

ISPCONFIG

Adesso dobbiamo pensare a Ispconfig perché si dimentichi di Apache e inizia a usare correttamente nginx. Mano a phpMyadmin!

Ci serve arrivare al DB di Ispconfig per una modifica manuale, la tabella è ‘server’.

path

 

Modifichiamo l’unica riga che dovrebbe essere presente

edit

Adesso ci interessa modificare due parametri nella colonna config

La sezione [global]

global_directive

e quella [web]

web_directive

sostituite ‘apache’ con ‘nginx’ , salvate e chiudete! Avete quasi finito!

cd /usr/local/ispconfig/server/plugins-enabled/
rm apache2_plugin.inc.php
ln -sv /local/ispconfig/server/plugins-available/nginx_plugin.inc.php nginx_plugin.inc.php

 NGINX + ISPCONFIG

Facciamo vedere Ispconfig a nginx

Vi occorrono un po’ di file (li fornisco io) che voi dovrete mettere nel posto giusto!

Scaricate il file e fate attenzione a dove lo scopattate

cd /tmp
tar xfjv etc.tar.bz2
cd etc/ngnix
cat nginx.conf > /etc/nginx/nginx.conf
cp sites-available/* /etc/nginx/sites-available/

 

Adesso fermiamo Apache, togliamo la re-direzzione dalla tabella di pre-routing e riavviamo nginx.

service apache2 stop
iptables -t nat  -D PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8000
iptables -t nat  -D PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8043
service nginx restart

 

Incrociate le dita e verificate che nginx veda correttamente Ispconfig visitando il link http://yourdomain:8080/

La cosa più semplice che dovete fare per attivare i vostri siti sotto nginx sarà quello di aprire e risaldare ogni sito dal pannello di controllo di Ispconfig. Questo genererà un nuovo file di configurazione standard per nginx e attiverà il relativo processo.

Alcune cose dovrebbe essere controllate, come ade esempio se è attivata o meno la funzionalità socket di php-fpm per ogni sito. Se non lo fosse alcuni siti un PHP potrebbe riportate l’errore 502 Bad Gateway.

php5-fpm_socket

Abbiamo finito, spero che tutto sia andato bene!

A presto!!!

Total
1
Shares
Share 0
Tweet 0
Pin it 1
Related Topics
  • apache
  • bash
  • debian
  • ispconfig
  • nginx
  • server
Vincenzo Ingrosso

Sono un lavoratore in-dipendente. Non ho titoli di studio che possano testimoniare le mie conoscenze in ambito informatico, ma sono dietro una tastiera dal '95. La mia prima distribuzione linux è stata RedHat, per passare nel giro di tre mesi a Slackware con la quale ho convissuto per circa 13 anni. Ad un certo punto ho realizzato Sflack, vale a dire Slackware Linux a 64bit puri, senza quindi utilizzo di multi-lib. Successivamente per mancanza di tempo e per comodità sono passato a Debian. Oggi lavoro davanti ad un iMac, ho una famiglia e mi occupo di tutt'altro.

Articolo Precedente
  • Bash
  • Debian & Sysadmin

Fail2Ban: how-to setup with Blocklist reporting

  • 23 Luglio 2014
  • Vincenzo Ingrosso
Visualizza Post
Articolo Successivo
  • Bash
  • Debian & Sysadmin

uTorrent®: howto install and setup utserver in Debian Wheezy

  • 1 Luglio 2015
  • Vincenzo Ingrosso
Visualizza Post
You May Also Like
A fantasy dragon with golden scales and red eyes
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Server

Creare la tua prima macchina virtuale con Vagrant

  • Vincenzo Ingrosso
  • 4 Agosto 2023
Visualizza Post
  • Debian & Sysadmin
  • Random Post
  • Server

Introduzione a Vagrant e Terraform

  • Vincenzo Ingrosso
  • 4 Agosto 2023
wpscan kali wordpress
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Random Post
  • Raspberry

wpscan kali wordpress

  • Vincenzo Ingrosso
  • 4 Agosto 2023
Visualizza Post
  • Debian & Sysadmin
  • Random Post
  • Raspberry

kali su raspberry

  • Vincenzo Ingrosso
  • 3 Agosto 2023
Visualizza Post
  • Debian & Sysadmin
  • Raspberry
  • Server

kubernetes raspberry cluster

  • Vincenzo Ingrosso
  • 3 Agosto 2023
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Server

Initramfs: install sshd to remote access

  • Vincenzo Ingrosso
  • 17 Luglio 2017
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Server

OpenVPN: setup guide on Debian (routed and bridged VPN)

  • Vincenzo Ingrosso
  • 22 Luglio 2015
Visualizza Post
  • Bash
  • Debian & Sysadmin
  • Server

Debian: from Wheezy (7.0) to Jessie (8.0)

  • Vincenzo Ingrosso
  • 14 Luglio 2015
  • importanza del protocollo IP

    Il protocollo IP nell’interconnessione di dispositivi di rete

    Visualizza Post
  • Differenze tra ICMP, TCP, and UDP Protocols

    Differenze tra ICMP, TCP, and UDP Protocols

    Visualizza Post
  • Debian: importanza e futuro della distribuzione Linux

    Debian: importanza e futuro della distribuzione Linux

    Visualizza Post
  • differenza tra intelligenze artificiali

    Differenza tra intelligenze artificiali

    Visualizza Post
  • A fantasy dragon with golden scales and red eyes

    Creare la tua prima macchina virtuale con Vagrant

    Visualizza Post
Facebook Page
Instagram
TRENDING POSTS
  • importanza del protocollo IP
    Il protocollo IP nell’interconnessione di dispositivi di rete
    • 29 Agosto 2023
  • Differenze tra ICMP, TCP, and UDP Protocols
    Differenze tra ICMP, TCP, and UDP Protocols
    • 29 Agosto 2023
  • Debian: importanza e futuro della distribuzione Linux
    Debian: importanza e futuro della distribuzione Linux
    • 28 Agosto 2023
  • differenza tra intelligenze artificiali
    Differenza tra intelligenze artificiali
    • 7 Agosto 2023
  • A fantasy dragon with golden scales and red eyes
    Creare la tua prima macchina virtuale con Vagrant
    • 4 Agosto 2023
Legalese
Licenza Creative Commons

Questo Blog di Vincenzo Ingrosso è distribuito con Licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 4.0 Internazionale.
Debian
FOLLOW ME
Facebook 0 Likes
Instagram 0 Followers
Twitter 0 Followers

Let's keep in touch

Subscribe now to my newsletter

about
Vincenzo Ingrosso

About the site

Sono un lavoratore in-dipendente. Non ho titoli di studio che possano testimoniare le mie conoscenze in ambito informatico, ma sono dietro una tastiera dal '95. La mia prima distribuzione linux è stata RedHat, per passare nel giro di tre mesi a Slackware con la quale ho convissuto per circa 13 anni. Ad un certo punto ho realizzato Sflack, vale a dire Slackware Linux a 64bit puri, senza quindi utilizzo di multi-lib. Successivamente per mancanza di tempo e per comodità sono passato a Debian. Oggi lavoro davanti ad un iMac, ho una famiglia e mi occupo di tutt'altro.
Victoria’s Secret

Recent Posts
  • importanza del protocollo IP
    Il protocollo IP nell’interconnessione di dispositivi di rete
    • 29 Agosto 2023
  • Differenze tra ICMP, TCP, and UDP Protocols
    Differenze tra ICMP, TCP, and UDP Protocols
    • 29 Agosto 2023
  • Debian: importanza e futuro della distribuzione Linux
    Debian: importanza e futuro della distribuzione Linux
    • 28 Agosto 2023
Vincenzo Ingrosso Weblog
  • System Admin
  • Random Post
  • About me
  • Contact
... I follow my passion ...

Inserisci la chiave di ricerca e premi invio.