--Installieren Sie das Apache2-Paket unter Ubuntu
Installieren Sie das Apache2-Paket.
$ sudo apt install apache2
Überprüfe die Version.
$ /usr/sbin/apachectl -v
Server version: Apache/2.4.41 (Unix)
Server built: Nov 9 2019 07:53:54
Aktivieren Sie die Module, die zum Umkehren des Proxys zur http-Site erforderlich sind.
Aktivieren Sie das Apache-Modul mit dem Befehl a2enmod. Durch Angabe von proxy_http im Befehl a2enmod wird mod_proxy aktiviert, das von mod_proxy_http abhängig ist.
$ sudo a2enmod proxy_http
Considering dependency proxy for proxy_http:
Enabling module proxy.
Enabling module proxy_http.
To activate the new configuration, you need to run:
systemctl restart apache2
Aktivierte Apache-Module werden in / etc / apache2 / mods-enabled / installiert.
$ ls -la /etc/apache2/mods-enabled/ | grep proxy
lrwxrwxrwx 1 root root 28 Januar 27 12:37 proxy.conf -> ../mods-available/proxy.conf
lrwxrwxrwx 1 root root 28 Januar 27 12:37 proxy.load -> ../mods-available/proxy.load
lrwxrwxrwx 1 root root 33 27. Januar 12:48 proxy_http.load -> ../mods-available/proxy_http.load
mod \ _proxy \ -Apache HTTP Server Version 2 \ .4
Dieses Modul implementiert die Proxy- / Gateway-Funktionalität von Apache. AJP13 (Apache JServe Protocol Version 1.3), FTP, CONNECT (für SSL), HTTP / 0.9, HTTP / 1.0, HTTP / 1.1 Proxy-Funktionen sind implementiert. Sie können es auch so konfigurieren, dass eine Verbindung zu anderen Modulen hergestellt wird, die über Proxy-Funktionen für diese und andere Protokolle verfügen.
Die Proxy-Funktionalität von Apache ist zusätzlich zu mod_proxy in mehrere Module unterteilt: mod_proxy_http, mod_proxy_ftp, mod_proxy_ajp, mod_proxy_balancer, mod_proxy_connect. Wenn Sie also die Funktionalität eines bestimmten Proxys nutzen möchten, müssen Sie mod_proxy und das entsprechende Modul in den Server aufnehmen (entweder statisch zur Kompilierungszeit oder dynamisch von LoadModule geladen).
mod_ssl wird mit a2enmod ssl aktiviert, und mod_setenvif, mod_mime und mod_socache_shmcb werden ebenfalls als Abhängigkeiten aktiviert.
$ sudo a2enmod ssl
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
systemctl restart apache2
Kopieren Sie dieses Mal die Datei 000-default.conf in das Verzeichnis / etc / apache2 / sites-available, um eine Datei mit dem Namen my-proxy.conf zu erstellen.
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/my-proxy.conf
Ändern Sie den Inhalt der Datei my-proxy.conf.
$ sudo vim /etc/apache2/sites-available/my-proxy.conf
Ersetzen Sie die Datei my-proxy.conf durch Folgendes:
my-proxy.conf
<VirtualHost *:80>
# /etc/apache2/sites-available/000-default.Inhalt kopiert von conf
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# localhost:Proxy auf 8888 umkehren
ProxyPass /foo/ http://127.0.0.1:8888/foo/
ProxyPassReverse /foo/ http://127.0.0.1:8888/foo/
#Reverse-Proxy zur http-Site
ProxyPass /bar/ http://example.com/bar/
ProxyPassReverse /bar/ http://example.com/bar/
#Proxy auf https-Site umkehren
SSLProxyEngine On
ProxyPass /baz/ https://example.org/baz/
ProxyPassReverse /baz/ https://example.org/baz/
</VirtualHost>
Aktivieren Sie my-proxy.conf mit dem Befehl a2ensite.
$ sudo a2ensite my-proxy
Enabling site my-proxy.
To activate the new configuration, you need to run:
systemctl reload apache2
Deaktivieren Sie 000-default.conf mit dem Befehl a2dissite.
$ sudo a2dissite 000-default
Site 000-default disabled.
To activate the new configuration, you need to run:
systemctl reload apache2
$ sudo systemctl restart apache2
Sie können überprüfen, ob der Reverse-Proxy mit dem Befehl curl funktioniert.
$ curl -i http://localhost/foo/
HTTP/1.1 200
Date: Mon, 27 Jan 2020 11:19:56 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Type: text/html;charset=UTF-8
Content-Language: ja-JP
Vary: Accept-Encoding
Transfer-Encoding: chunked
<html><body>Hello, world.</body></html>
Wenn es nicht wie erwartet funktioniert, überprüfen Sie die Ausgabe der Fehlermeldung in /var/log/apache2/error.log.
AH01144: No protocol handler was valid for the URL /foo/ (scheme 'http'). If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
AH01961: SSL Proxy requested for your.example.net:80 but not enabled [Hint: SSLProxyEngine]
AH00961: HTTPS: failed to enable ssl support for XXX.XXX.XXX.XXX:443 (example.org)
Recommended Posts