Configurer un proxy inverse vers le serveur https avec CentOS Linux 8 + Apache mod_ssl

Aperçu

--Installez Apache HTTP Server et mod_ssl sur CentOS Linux 8 et configurez un proxy inverse vers le serveur https

environnement

$ cat /etc/centos-release
CentOS Linux release 8.1.1911 (Core)

Installer Apache

Installez le package httpd avec la commande dnf install.

$ sudo dnf install httpd

Confirmez qu'il a été installé.

$ dnf list --installed httpd
Paquets installés
httpd.x86_64  2.4.37-16.module_el8.1.0+256+ae790463  @AppStream

$ which httpd
/usr/sbin/httpd

$ httpd -v
Server version: Apache/2.4.37 (centos)
Server built:   Dec 23 2019 20:45:34

$ httpd -V
Server version: Apache/2.4.37 (centos)
Server built:   Dec 23 2019 20:45:34
Server's Module Magic Number: 20120211:83
Server loaded:  APR 1.6.3, APR-UTIL 1.6.1
Compiled using: APR 1.6.3, APR-UTIL 1.6.1
Architecture:   64-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Activez le service httpd de systemd.

$ sudo systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

Démarrez Apache

Démarrez Apache avec la commande systemctl start.

$ sudo systemctl start httpd

Vérifiez l'état d'Apache.

$ systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-03-23 21:55:04 JST; 7min ago
     Docs: man:httpd.service(8)

Fichier de configuration Apache

Il existe un fichier de configuration Apache sous / etc / httpd /. Le fichier de configuration principal est /etc/httpd/conf/httpd.conf, qui ajoute d'autres fichiers de configuration avec la directive Include.

$ tree /etc/httpd/
/etc/httpd/
├── conf
│   ├── httpd.conf
│   └── magic
├── conf.d
│   ├── README
│   ├── autoindex.conf
│   ├── userdir.conf
│   └── welcome.conf
├── conf.modules.d
│   ├── 00-base.conf
│   ├── 00-dav.conf
│   ├── 00-lua.conf
│   ├── 00-mpm.conf
│   ├── 00-optional.conf
│   ├── 00-proxy.conf
│   ├── 00-systemd.conf
│   ├── 01-cgi.conf
│   ├── 10-h2.conf
│   ├── 10-proxy_h2.conf
│   └── README
├── logs -> ../../var/log/httpd
├── modules -> ../../usr/lib64/httpd/modules
├── run -> /run/httpd
└── state -> ../../var/lib/httpd

7 directories, 17 files

Installez mod_ssl

Installez le package mod_ssl avec la commande dnf install.

$ sudo dnf install mod_ssl

Les fichiers de configuration ssl.conf et 00-ssl.conf ont été ajoutés, alors ajoutez-les avec la directive Include si nécessaire.

$ find /etc/httpd | grep ssl
/etc/httpd/conf.d/ssl.conf
/etc/httpd/conf.modules.d/00-ssl.conf

Paramètres de proxy inverse

Par exemple, écrivez le contenu suivant dans le fichier de paramètres de /etc/httpd/conf/httpd.conf. Cette fois, je les ai rassemblés dans un fichier de paramètres sans utiliser la directive Inclure.

ServerRoot "/etc/httpd"

LoadModule authz_core_module modules/mod_authz_core.so
LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule systemd_module modules/mod_systemd.so

Listen 80
User apache
Group apache

ErrorLog "logs/error_log"

ProxyRequests Off
SSLProxyEngine On
ProxyPass /foobar/ https://hogehoge.example.com/foobar/
ProxyPassReverse /foobar/ https://hogehoge.example.com/foobar/

Vous pouvez vérifier si le fichier de configuration est correct avec la commande apachectl configtest.

$ apachectl configtest
Syntax OK

Si les paramètres sont corrects, redémarrez Apache pour que les paramètres prennent effet.

$ sudo systemctl restart httpd

Accédez avec curl etc. et vérifiez que la réponse est renvoyée par le serveur qui a généré le contenu.

$ curl --include --silent http://localhost/foobar/ | head
HTTP/1.1 200 OK
Date: Mon, 23 Mar 2020 13:05:09 GMT
Server: Foobar Frontend
Content-Type: text/html;charset=utf-8
Content-Length: 9876

<!DOCTYPE html>
<html>
<head>
<title>Hello, world.</title>

Matériel de référence

Recommended Posts

Configurer un proxy inverse vers le serveur https avec CentOS Linux 8 + Apache mod_ssl
Configurer un serveur Web avec CentOS7 + Anaconda + Django + Apache
Paramètres à effectuer lors du démarrage du serveur Linux centos7
Configurer un serveur Samba avec Docker
Envoyez du courrier avec mailx à un serveur SMTP factice configuré avec python.
Créez un environnement CentOS Linux 8 avec Docker et démarrez Apache HTTP Server
Configurer un serveur HTTPS simple avec Python 3
Configurer un serveur local avec le téléchargement Go-File-
Configurer Golang avec goenv sur GNU / Linux
Configurer un serveur local avec le téléchargement Go-File-
Comment configurer un serveur de développement local
Proxy inverse avec Apache 2.4 sur Ubuntu 19.10 Eoan Ermine
Sauvegarde de QNAP vers Linux avec rsync
Configurer Docker sur Oracle Linux (7.x) avec Vagrant
[Partie 1] Configurons un serveur Micra sur Linux
Comment créer un serveur HTTPS avec Go / Gin
[proxy https avec squid] Comment représenter une liste blanche de https avec url_regex
[Vagrant] Configurer un serveur API simple avec python
Accès ODBC à SQL Server depuis Linux avec Python
Serveur proxy avec Docker
Lorsqu'il est difficile de configurer un serveur SMTP localement lors de l'envoi de courrier avec Python.
Comment configurer Ubuntu pour le sous-système Windows pour Linux 2 (WSL2)
Recharger le serveur configuré avec gunicorn lors du changement de code
Comment démarrer Apache en spécifiant httpd.conf avec systemd (CentOS7, CentOS8)
Comment configurer et utiliser OMC Log Analytics - Version Linux-
Configurez un serveur de référentiel yum sur la série CentOS 7 et faites-y référence localement et à partir d'autres serveurs, etc.
Introduction et utilisation de la bouteille Python ・ Essayez de configurer un serveur Web simple avec une fonction de connexion