Richten Sie mit CentOS Linux 8 + Apache mod_ssl einen Reverse-Proxy für den https-Server ein

Überblick

Umgebung

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

Apache installieren

Installieren Sie das httpd-Paket mit dem Befehl dnf install.

$ sudo dnf install httpd

Bestätigen Sie, dass es installiert wurde.

$ dnf list --installed httpd
Installierte Pakete
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"

Aktivieren Sie den systemd httpd-Dienst.

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

Starten Sie Apache

Starten Sie Apache mit dem Befehl systemctl start.

$ sudo systemctl start httpd

Überprüfen Sie den Status von 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)

Apache-Konfigurationsdatei

Unter / etc / httpd / befindet sich eine Apache-Konfigurationsdatei. Die Hauptkonfigurationsdatei ist /etc/httpd/conf/httpd.conf, wodurch andere Konfigurationsdateien mit der Include-Direktive hinzugefügt werden.

$ 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

Installieren Sie mod_ssl

Installieren Sie das Paket mod_ssl mit dem Befehl dnf install.

$ sudo dnf install mod_ssl

Die Konfigurationsdateien ssl.conf und 00-ssl.conf wurden hinzugefügt. Fügen Sie sie daher bei Bedarf mit der Include-Direktive hinzu.

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

Proxy-Einstellungen umkehren

Schreiben Sie beispielsweise den folgenden Inhalt in die Einstellungsdatei von /etc/httpd/conf/httpd.conf. Dieses Mal habe ich sie in einer Einstellungsdatei zusammengestellt, ohne die Include-Direktive zu verwenden.

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/

Mit dem Befehl apachectl configtest können Sie überprüfen, ob die Konfigurationsdatei korrekt ist.

$ apachectl configtest
Syntax OK

Wenn die Einstellungen korrekt sind, starten Sie Apache neu, damit die Einstellungen wirksam werden.

$ sudo systemctl restart httpd

Greifen Sie mit Curl usw. zu und überprüfen Sie, ob die Antwort von dem Server zurückgegeben wird, der den Inhalt generiert hat.

$ 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>

Referenzmaterial

Recommended Posts

Richten Sie mit CentOS Linux 8 + Apache mod_ssl einen Reverse-Proxy für den https-Server ein
Richten Sie einen Webserver mit CentOS7 + Anaconda + Django + Apache ein
Einstellungen, die beim Starten des Linux-Servers centos7 vorgenommen werden müssen
Richten Sie mit Docker einen Samba-Server ein
Senden Sie E-Mails mit mailx an einen mit Python eingerichteten Dummy-SMTP-Server.
Erstellen Sie mit Docker eine CentOS Linux 8-Umgebung und starten Sie Apache HTTP Server
Richten Sie mit Python 3 einen einfachen HTTPS-Server ein
Richten Sie einen lokalen Server mit Go-File-Upload ein.
Richten Sie golang mit goenv unter GNU / Linux ein
Richten Sie einen lokalen Server mit Go-File-Download ein.
So richten Sie einen lokalen Entwicklungsserver ein
Reverse Proxy mit Apache 2.4 unter Ubuntu 19.10 Eoan Ermine
Sichern Sie mit rsync von QNAP auf Linux
Richten Sie Docker unter Oracle Linux (7.x) mit Vagrant ein
[Teil 1] Lassen Sie uns einen Micra-Server unter Linux einrichten
So erstellen Sie einen HTTPS-Server mit Go / Gin
[https-Proxy mit Tintenfisch] So stellen Sie eine Whitelist von https mit url_regex dar
[Vagrant] Richten Sie einen einfachen API-Server mit Python ein
ODBC-Zugriff auf SQL Server von Linux mit Python
Proxyserver mit Docker
Wenn es schwierig ist, beim Senden von E-Mails mit Python lokal einen SMTP-Server einzurichten.
So richten Sie Ubuntu für Windows Subsystem für Linux 2 (WSL2) ein
Laden Sie den mit Gunicorn eingerichteten Server neu, wenn Sie den Code ändern
So starten Sie Apache durch Angabe von httpd.conf mit systemd (CentOS7, CentOS8)
So richten Sie OMC Log Analytics ein und verwenden es - Linux-Version-
Richten Sie einen yum-Repository-Server unter CentOS 7 ein und verweisen Sie lokal und von anderen Servern usw. darauf.
Einführung und Verwendung der Python-Flasche ・ Versuchen Sie, einen einfachen Webserver mit Anmeldefunktion einzurichten