Eseguire ISPConfig 2 sulla porta 80 utilizzando la funzione proxy inverso di Apache (Debian Etch)
Questo articolo mostra come configurare un sistema Debian Etch su cui è installato il pannello di controllo del webhosting ISPConfig 2 in modo che sia possibile accedere a ISPConfig sulla porta 80. Per impostazione predefinita, ISPConfig utilizza la porta 81 che è una porta non standard ed è bloccata da alcuni firewall e ISP. Utilizzando il modulo mod_proxy di Apache, possiamo evitare questo problema. Ci consente di creare un proxy inverso in grado di recuperare le pagine da ISPConfig sulla porta 81.
Nota:questo tutorial riguarda solo ISPConfig 2, non è compatibile con ISPConfig 3. Per ISPConfig 3 è disponibile un plugin inverso Nginx su github.
Non garantisco che questo funzionerà per te!
1 Nota preliminare
L'ho testato su un sistema Debian Etch. Sebbene alcuni comandi in questo tutorial siano specifici di Debian, la maggior parte di essi può essere applicata a qualsiasi altra distribuzione Linux (in particolare alla configurazione di Apache).
Sto usando il nome host ispconfig.example.com in questo tutorial. L'obiettivo di questo tutorial è accedere a ISPConfig sotto l'URL http://ispconfig.example.com. Mostrerò come farlo in due capitoli separati:un capitolo se ISPConfig è installato in http://ispconfig.example.com:81 (http) e un capitolo se ISPConfig è installato in https://ispconfig .esempio.com:81 (https).
2 ISPConfig utilizzando http (http://ispconfig.example.com:81)
Per creare un proxy inverso per le richieste http, abbiamo bisogno dei moduli Apache mod_proxy e mod_proxy_http. Questi sono già installati in un'installazione standard di Debian Etch Apache 2.2, quindi tutto ciò che dobbiamo fare è abilitarli:
a2enmod proxy
a2enmod proxy_http
Successivamente, dobbiamo ricaricare Apache:
/etc/init.d/apache2 force-reload
Successivamente, dobbiamo configurare Apache. Apri /etc/apache2/apache2.conf e cerca questa sezione:
vi /etc/apache2/apache2.conf
[...] # Include the virtual host configurations: Include /etc/apache2/sites-enabled/ <Directory /var/www/sharedip> Options +Includes -Indexes AllowOverride None AllowOverride Indexes AuthConfig Limit FileInfo Order allow,deny Allow from all <Files ~ "^\.ht"> Deny from all </Files> </Directory> [...] |
Subito prima di questa sezione, aggiungiamo le seguenti righe:
NameVirtualHost * <VirtualHost *> ServerName ispconfig.example.com DocumentRoot /var/www/ ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://ispconfig.example.com:81/ ProxyPassReverse / http://ispconfig.example.com:81/ </VirtualHost> |
in modo che assomigli a questo:
[...] NameVirtualHost * <VirtualHost *> ServerName ispconfig.example.com DocumentRoot /var/www/ ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://ispconfig.example.com:81/ ProxyPassReverse / http://ispconfig.example.com:81/ </VirtualHost> # Include the virtual host configurations: Include /etc/apache2/sites-enabled/ <Directory /var/www/sharedip> Options +Includes -Indexes AllowOverride None AllowOverride Indexes AuthConfig Limit FileInfo Order allow,deny Allow from all <Files ~ "^\.ht"> Deny from all </Files> </Directory> [...] |
Quindi riavvia Apache:
/etc/init.d/apache2 restart
Se ricevi un avviso come questo:
server1:~/ispconfig/httpd/conf# /etc/init.d/apache2 restart
Forcing reload of web server (apache2)...[Tue May 22 23:23:12 2007] [warn] NameVirtualHost *:0 has no VirtualHosts
[Tue May 22 23:23:22 2007] [warn] NameVirtualHost *:0 has no VirtualHosts
quindi puoi commentare la riga Include /etc/apache2/sites-enabled/ in /etc/apache2/apache2.conf:
vi /etc/apache2/apache2.conf
[...] # Include the virtual host configurations: #Include /etc/apache2/sites-enabled/ [...] |
oppure commenta la riga NameVirtualHost * all'inizio di /etc/apache2/sites-available/default:
vi /etc/apache2/sites-available/default
#NameVirtualHost * [...] |
Riavvia Apache:
/etc/init.d/apache2 restart
Gli avvisi dovrebbero essere spariti ora.
Infine dobbiamo modificare il file di configurazione di ISPConfig /home/admispconfig/ispconfig/lib/config.inc.php. Dovresti trovare qualcosa del genere in esso:
vi /home/admispconfig/ispconfig/lib/config.inc.php
[...] if(isset($_SERVER['HTTP_HOST'])){ $go_info["server"]["server_url"] = 'http://'.$_SERVER['HTTP_HOST']; } else { $go_info["server"]["server_url"] = "http://ispconfig.example.com:81"; } [...] |
Modificalo in modo che assomigli a questo:
[...] //if(isset($_SERVER['HTTP_HOST'])){ // $go_info["server"]["server_url"] = 'http://'.$_SERVER['HTTP_HOST']; //} else { $go_info["server"]["server_url"] = "http://ispconfig.example.com"; //} [...] |
Questo è tutto. Apri un browser e digita http://ispconfig.example.com e dovresti vedere la richiesta di accesso a ISPConfig.
3 ISPConfig utilizzando https (https://ispconfig.example.com:81)
Per creare un proxy inverso per le richieste http, abbiamo bisogno dei moduli Apache mod_proxy e mod_proxy_http. Questi sono già installati in un'installazione standard di Debian Etch Apache 2.2, quindi tutto ciò che dobbiamo fare è abilitarli:
a2enmod proxy
a2enmod proxy_http
Poiché il nostro proxy inverso Apache deve essere in grado di "parlare" con un sito https (https://ispconfig.example.com:81), abbiamo bisogno anche dei moduli mod_proxy_connect e mod_ssl:
a2enmod proxy_connect
a2enmod ssl
Successivamente, dobbiamo ricaricare Apache:
/etc/init.d/apache2 force-reload
Successivamente, dobbiamo configurare Apache. Apri /etc/apache2/apache2.conf e cerca questa sezione:
vi /etc/apache2/apache2.conf
[...] # Include the virtual host configurations: Include /etc/apache2/sites-enabled/ <Directory /var/www/sharedip> Options +Includes -Indexes AllowOverride None AllowOverride Indexes AuthConfig Limit FileInfo Order allow,deny Allow from all <Files ~ "^\.ht"> Deny from all </Files> </Directory> [...] |
Subito prima di questa sezione, aggiungi le seguenti righe:
NameVirtualHost * <VirtualHost *> ServerName ispconfig.example.com DocumentRoot /var/www/ ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / https://ispconfig.example.com:81/ ProxyPassReverse / https://ispconfig.example.com:81/ SSLProxyEngine on AllowCONNECT 81 </VirtualHost> |
in modo che assomigli a questo:
[...] NameVirtualHost * <VirtualHost *> ServerName ispconfig.example.com DocumentRoot /var/www/ ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / https://ispconfig.example.com:81/ ProxyPassReverse / https://ispconfig.example.com:81/ SSLProxyEngine on AllowCONNECT 81 </VirtualHost> # Include the virtual host configurations: Include /etc/apache2/sites-enabled/ <Directory /var/www/sharedip> Options +Includes -Indexes AllowOverride None AllowOverride Indexes AuthConfig Limit FileInfo Order allow,deny Allow from all <Files ~ "^\.ht"> Deny from all </Files> </Directory> [...] |
Quindi riavvia Apache:
/etc/init.d/apache2 restart
Se ricevi un avviso come questo:
server1:~/ispconfig/httpd/conf# /etc/init.d/apache2 restart
Forcing reload of web server (apache2)...[Tue May 22 23:23:12 2007] [warn] NameVirtualHost *:0 has no VirtualHosts
[Tue May 22 23:23:22 2007] [warn] NameVirtualHost *:0 has no VirtualHosts
quindi puoi commentare la riga Include /etc/apache2/sites-enabled/ in /etc/apache2/apache2.conf:
vi /etc/apache2/apache2.conf
[...] # Include the virtual host configurations: #Include /etc/apache2/sites-enabled/ [...] |
oppure commenta la riga NameVirtualHost * all'inizio di /etc/apache2/sites-available/default:
vi /etc/apache2/sites-available/default
#NameVirtualHost * [...] |
Riavvia Apache:
/etc/init.d/apache2 restart
Gli avvisi dovrebbero essere spariti ora.
Infine dobbiamo modificare il file di configurazione di ISPConfig /home/admispconfig/ispconfig/lib/config.inc.php. Dovresti trovare qualcosa del genere in esso:
vi /home/admispconfig/ispconfig/lib/config.inc.php
[...] if(isset($_SERVER['HTTP_HOST'])){ $go_info["server"]["server_url"] = 'https://'.$_SERVER['HTTP_HOST']; } else { $go_info["server"]["server_url"] = "https://ispconfig.example.com:81"; } [...] |
Modificalo in modo che assomigli a questo:
[...] //if(isset($_SERVER['HTTP_HOST'])){ // $go_info["server"]["server_url"] = 'https://'.$_SERVER['HTTP_HOST']; //} else { $go_info["server"]["server_url"] = "http://ispconfig.example.com"; //} [...] |
Assicurati che legga http://ispconfig.example.com, non https://ispconfig.example.com!
Questo è tutto. Apri un browser e digita http://ispconfig.example.com e dovresti vedere la richiesta di accesso a ISPConfig.
4 link
- Modulo Apache mod_proxy:http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
- Apache:http://httpd.apache.org
- Configurazione ISP:http://www.ispconfig.org
- Debian:http://www.debian.org