Nginx-Reverse-Proxy für Apache funktioniert nicht?

Nginx-Reverse-Proxy für Apache funktioniert nicht?

Ich habe nginx als meinen Hauptserver eingerichtet und verwende es als Reverse-Proxy für Apache auf Port :8080. Hier ist meine nginx-Konfigurationsdatei für apache.example.io

#
# apache.example.io
# Testing apache + nginx
#

server {
        listen 80; 

        root /var/www/apache-example-io; 
        index index.php index.html index.htm;

        server_name apache.example.io www.apache.example.io; 

        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;
        }
}

Und hier ist meine Datei für Apache Virtualhost

<VirtualHost 127.0.0.1:8080>
    ServerName apache.example.io
    ServerAlias www.apache.example.io
    ErrorLog /var/www/apache-example-io/errror.log
    DocumentRoot /var/www/apache-example-io/public_html
    <Directory "/var/www/apache-example-io/public_html">
       # Order allow,deny
       # Allow from all
       # New directive needed in Apache 2.4.3: 
       # Require all granted
       AllowOverride All
    </Directory>
</VirtualHost>

Diese funktionieren gut, wenn ich gehe zuhttp://apache.example.io/index Aber ich bekomme einen 403 Nginx-Fehler, wenn ich besuchehttp://apache.example.io/ Ich bin nicht sicher, wie ich das beheben kann, die Fehlerprotokolle für Nginx sehen wie folgt aus:

14.03.2018 21:25:24 [Fehler] 24730#0:6 Verzeichnisindex von „/var/www/“ ist verboten, Client: 211., Server: apache.example.io, Anfrage: „GET / HTTP/1.1“, Host: „apache.example.io“

Das Googeln und die Reparaturversuche waren erfolglos :(

Antwort1

Es stellte sich also heraus, dass ich lediglich bestimmte Domänen, die ich hatte, alle direkt auf meinen Server umgeleitet hatte und keine Standardroute eingerichtet hatte.

ich öffnete

/etc/nginx/conf.d/default.conf

Und dies hinzugefügt in:

server {
  listen 80 default_server; 
  return 404;
}

Dadurch werden alle nicht angegebenen Wildcard-Domänen und dergleichen gezwungen, einfach zu einer 404-Fehlermeldung weiterzuleiten. Wenn ich eine neue Domäne hinzufügen möchte, erstelle ich entweder mit nginx (NodeJS-Anwendung) eine neue Datei dafür und leite zu dieser IP weiter oder erstelle einen Apache-Virtualhost für die Bereitstellung von PHP-Inhalten. :)

verwandte Informationen