GNU/Linux >> Znalost Linux >  >> Panels >> Panels

Jak spustit ISPConfig 2 na portu 80 pomocí funkce Apaches Reverse Proxy (Debian Etch)

Spuštění ISPConfig 2 na portu 80 pomocí funkce Reverse Proxy od Apache (Debian Etch)

Tento článek ukazuje, jak můžete nakonfigurovat systém Debian Etch, který má nainstalovaný ovládací panel webhostingu ISPConfig 2 tak, aby byl ISPConfig přístupný na portu 80. Ve výchozím nastavení používá ISPConfig port 81, což je nestandardní port a je blokován některými firewally a poskytovatelé internetových služeb. Použitím modulu mod_proxy od Apache se tomuto problému můžeme vyhnout. Umožňuje nám vytvořit reverzní proxy, která může načítat stránky z ISPConfig na portu 81.

Poznámka:Tento tutoriál je pouze o ISPConfig 2, není kompatibilní s ISPConfig 3. Pro ISPConfig 3 je na githubu dostupný reverzní plugin Nginx.

Neposkytuji žádnou záruku, že to pro vás bude fungovat!

1 předběžná poznámka

Testoval jsem to na systému Debian Etch. Zatímco některé příkazy v tomto tutoriálu jsou specifické pro Debian, většinu z nich lze použít na jakoukoli jinou distribuci Linuxu (zejména na konfiguraci Apache).

V tomto tutoriálu používám název hostitele ispconfig.example.com. Cílem tohoto kurzu je přistupovat k ISPConfig pod URL http://ispconfig.example.com. Ukážu, jak to udělat ve dvou samostatných kapitolách:jedna kapitola, pokud je ISPConfig nainstalován pod http://ispconfig.example.com:81 (http), a jedna kapitola, pokud je ISPConfig nainstalován pod https://ispconfig .example.com:81 (https).

2 ISPConfig pomocí http (http://ispconfig.example.com:81)

Abychom vytvořili reverzní proxy pro http požadavky, potřebujeme moduly Apache mod_proxy a mod_proxy_http. Ty jsou již nainstalovány ve standardní instalaci Debian Etch Apache 2.2, takže vše, co musíme udělat, je povolit:

a2enmod proxy
a2enmod proxy_http

Poté musíme znovu načíst Apache:

/etc/init.d/apache2 force-reload

Dále musíme nakonfigurovat Apache. Otevřete /etc/apache2/apache2.conf a vyhledejte tuto sekci:

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>
[...]

Přímo před tuto sekci přidáváme následující řádky:

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>

aby to vypadalo takto:

[...]
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>
[...]

Poté restartujte Apache:

/etc/init.d/apache2 restart

Pokud dostanete varování jako toto:

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

pak můžete buď okomentovat řádek Include /etc/apache2/sites-enabled/ v /etc/apache2/apache2.conf:

vi /etc/apache2/apache2.conf
[...]
# Include the virtual host configurations:
#Include /etc/apache2/sites-enabled/
[...]

nebo zakomentujete řádek NameVirtualHost * na začátku /etc/apache2/sites-available/default:

vi /etc/apache2/sites-available/default
#NameVirtualHost *
[...]

Restartujte Apache:

/etc/init.d/apache2 restart

Varování by nyní měla být pryč.

Nakonec musíme upravit konfigurační soubor ISPConfig /home/admispconfig/ispconfig/lib/config.inc.php. Měli byste v něm najít něco takového:

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";
}
[...]

Upravte jej tak, aby vypadal takto:

[...]
//if(isset($_SERVER['HTTP_HOST'])){
//  $go_info["server"]["server_url"] = 'http://'.$_SERVER['HTTP_HOST'];
//} else {
  $go_info["server"]["server_url"] = "http://ispconfig.example.com";
//}
[...]

A je to. Otevřete prohlížeč a zadejte http://ispconfig.example.com a měla by se zobrazit výzva k přihlášení k ISPConfig.

3 ISPConfig pomocí https (https://ispconfig.example.com:81)

Abychom vytvořili reverzní proxy pro http požadavky, potřebujeme moduly Apache mod_proxy a mod_proxy_http. Ty jsou již nainstalovány ve standardní instalaci Debian Etch Apache 2.2, takže vše, co musíme udělat, je povolit:

a2enmod proxy
a2enmod proxy_http

Protože náš reverzní proxy Apache musí být schopen „mluvit“ se stránkou https (https://ispconfig.example.com:81), potřebujeme také moduly mod_proxy_connect a mod_ssl:

a2enmod proxy_connect
a2enmod ssl

Poté musíme znovu načíst Apache:

/etc/init.d/apache2 force-reload

Dále musíme nakonfigurovat Apache. Otevřete /etc/apache2/apache2.conf a vyhledejte tuto sekci:

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>
[...]

Přímo před tuto část přidejte následující řádky:

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>

aby to vypadalo takto:

[...]
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>
[...]

Poté restartujte Apache:

/etc/init.d/apache2 restart

Pokud dostanete varování jako toto:

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

pak můžete buď okomentovat řádek Include /etc/apache2/sites-enabled/ v /etc/apache2/apache2.conf:

vi /etc/apache2/apache2.conf
[...]
# Include the virtual host configurations:
#Include /etc/apache2/sites-enabled/
[...]

nebo zakomentujete řádek NameVirtualHost * na začátku /etc/apache2/sites-available/default:

vi /etc/apache2/sites-available/default
#NameVirtualHost *
[...]

Restartujte Apache:

/etc/init.d/apache2 restart

Varování by nyní měla být pryč.

Nakonec musíme upravit konfigurační soubor ISPConfig /home/admispconfig/ispconfig/lib/config.inc.php. Měli byste v něm najít něco takového:

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";
}
[...]

Upravte jej tak, aby vypadal takto:

[...]
//if(isset($_SERVER['HTTP_HOST'])){
//  $go_info["server"]["server_url"] = 'https://'.$_SERVER['HTTP_HOST'];
//} else {
  $go_info["server"]["server_url"] = "http://ispconfig.example.com";
//}
[...]

Ujistěte se prosím, že je to http://ispconfig.example.com, nikoli https://ispconfig.example.com!

A je to. Otevřete prohlížeč a zadejte http://ispconfig.example.com a měla by se zobrazit výzva k přihlášení k ISPConfig.

  • Modul Apache mod_proxy:http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
  • Apache:http://httpd.apache.org
  • ISPConfig:http://www.ispconfig.org
  • Debian:http://www.debian.org

Panels
  1. Jak zálohovat soubory konfigurace systému pomocí funkce WHM Backup?

  2. Jak nainstalovat Z-Push na server ISPConfig 3 (Debian Lenny)

  3. Jak nainstalovat Odoo 11 na Debian 9 s Nginx jako reverzní proxy

  1. Debian – Jak spouštět 32bitové programy na 64bitovém Debianu/ubuntu?

  2. Vynucené reklamy na ISPConfig s Debian Etch

  3. Jak nainstalovat Odoo 12 na Debian 10 s Nginx jako reverzní proxy

  1. Jak nastavit suPHP na serveru ISPConfig založeném na Debian Etch

  2. Jak povolit více webů HTTPS pro jednu IP na Debian Etch pomocí rozšíření TLS

  3. Jak správně zacházet s relativními adresami URL pomocí reverzního proxy