--Installez le package apache2 sur Ubuntu
Installez le package apache2.
$ sudo apt install apache2
Vérifiez la version.
$ /usr/sbin/apachectl -v
Server version: Apache/2.4.41 (Unix)
Server built: Nov 9 2019 07:53:54
Activez les modules nécessaires pour inverser le proxy vers le site http.
Activez le module Apache avec la commande a2enmod. La spécification de proxy_http dans la commande a2enmod active mod_proxy, qui dépend de mod_proxy_http.
$ 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
Les modules Apache activés sont installés dans / etc / apache2 / mods-enabled /.
$ ls -la /etc/apache2/mods-enabled/ | grep proxy
lrwxrwxrwx 1 racine racine 28 janvier 27 12:37 proxy.conf -> ../mods-available/proxy.conf
lrwxrwxrwx 1 racine racine 28 janvier 27 12:37 proxy.load -> ../mods-available/proxy.load
lrwxrwxrwx 1 racine racine 33 27 janvier 12:48 proxy_http.load -> ../mods-available/proxy_http.load
mod \ _proxy \ -Apache HTTP Server Version 2 \ .4
Ce module implémente la fonctionnalité proxy / passerelle d'Apache. Les fonctions de proxy AJP13 (Apache JServe Protocol version 1.3), FTP, CONNECT (pour SSL), HTTP / 0.9, HTTP / 1.0, HTTP / 1.1 sont implémentées. Vous pouvez également le configurer pour se connecter à d'autres modules qui ont des capacités de proxy pour ces protocoles et d'autres.
La fonctionnalité proxy d'Apache est divisée en plusieurs modules en plus de mod_proxy: mod_proxy_http, mod_proxy_ftp, mod_proxy_ajp, mod_proxy_balancer, mod_proxy_connect. Donc, si vous souhaitez utiliser la fonctionnalité d'un proxy particulier, vous devez inclure mod_proxy et le module approprié dans le serveur (soit statiquement au moment de la compilation, soit chargé dynamiquement par LoadModule).
mod_ssl est activé avec a2enmod ssl, et mod_setenvif, mod_mime et mod_socache_shmcb sont également activés comme dépendances.
$ 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
Cette fois, copiez le fichier 000-default.conf dans le répertoire / etc / apache2 / sites-available pour créer un fichier appelé my-proxy.conf.
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/my-proxy.conf
Modifiez le contenu du fichier my-proxy.conf.
$ sudo vim /etc/apache2/sites-available/my-proxy.conf
Remplacez le fichier my-proxy.conf par ce qui suit:
my-proxy.conf
<VirtualHost *:80>
# /etc/apache2/sites-available/000-default.Contenu copié depuis conf
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# localhost:Proxy inverse vers 8888
ProxyPass /foo/ http://127.0.0.1:8888/foo/
ProxyPassReverse /foo/ http://127.0.0.1:8888/foo/
#Proxy inverse vers le site http
ProxyPass /bar/ http://example.com/bar/
ProxyPassReverse /bar/ http://example.com/bar/
#Proxy inverse vers le site https
SSLProxyEngine On
ProxyPass /baz/ https://example.org/baz/
ProxyPassReverse /baz/ https://example.org/baz/
</VirtualHost>
Activez my-proxy.conf avec la commande a2ensite.
$ sudo a2ensite my-proxy
Enabling site my-proxy.
To activate the new configuration, you need to run:
systemctl reload apache2
Désactivez 000-default.conf avec la commande 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
Vous pouvez vérifier que le proxy inverse fonctionne avec la commande curl.
$ 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>
Si cela ne fonctionne pas comme prévu, vérifiez la sortie du message d'erreur dans /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