Reverse Proxy mit nginx und Apache Backend – CentOS 7
Reverse Proxy mit nginx und Apache Backend ist die beliebteste Konfiguration für High Performance Webserver mit maximale Kompatibilität.
Diese Anleitung wurde zuletzt unter CentOS 7.4 mit SELINUX=enforcing
getestet.
1. Vorbereitungen
Nginx kann vom EPEL-Repository installiert werden. Alternativ kann man von nginx.org downloaden, um die neuesten Version zu testen.
# System update yum update -y # EPEL Repository yum install epel-release -y
Bitte stellen Sie sicher, dass Port 80 für diese Anleitung offen ist:
# IPV4 - Check mit iptables -n -L -v # IPV6 - Check mit ip6tables -n -L -v
2. NGINX Installation:
# Installation von nginx yum install nginx -y # Autostart von nginx nach Reboot systemctl enable nginx systemctl start nginx
3. NGINX Default Virtualserver:
Es ist gängige Praxis, die virtuelle Webserver in /etc/nginx/conf.d/
zu konfigurieren.
# nano /etc/nginx/conf.d/default.conf server { listen 80; root /var/www/html/; index index.php index.html index.htm; server_name _; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080; } location ~ /\.ht { deny all; } }
3a. Default Virtual Server Löschen
Bitte Editieren Sie /etc/nginx/nginx.conf
und kommentieren den Sever-Block aus, diesen haben wir bereits im vorherigen Schritt definiert.
#server { # listen 80 default_server; # listen [::]:80 default_server; # server_name _; # root /usr/share/nginx/html; # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # location / { # } # error_page 404 /404.html; # location = /40x.html { # } # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } # }
4. Apache Installation
yum install httpd systemctl enable httpd
5. Apache Konfiguration
nano /etc/httpd/conf/httpd.conf
Suchen Sie die Zeile mit Listen und ändern Sie diese wir folgt.
Listen 127.0.0.1:8080
5. PHP Installation
yum install php
6. PHP-Testskript
# nano /var/www/html/info.php < ?php phpinfo(); ?> // Bitte Leerzeichen vor ?php löschen!
7. Server Neu Starten
systemctl restart httpd systemctl restart nginx
8. Webseite aufrufen
Rufen Sie http://host-ip-or-hostname/info.php
im Browser, dann bekommen Sie die Fehlermedlung "502 Bad Gateway"
. Nur noch eine SELinux-kleinigkeit, dann darf Nginx mit Apache kommunizieren:
setsebool -P httpd_can_network_connect on
Dann sollten Sie die PHP-Infos wie im folgenden Bild im Browser sehen:
Bei Fragen oder technischen Probleme kontakieren Sie uns bitte, unabhängig vom Kundenstatus unterstützen wir Sie gern.