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.





