Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: Nginx als Reverse Proxy + Apache2 Rewriting Problem

  1. #1
    Contao-Nutzer
    Registriert seit
    08.01.2018.
    Beiträge
    9

    Standard Nginx als Reverse Proxy + Apache2 Rewriting Problem

    Hallo zusammen,

    ich habe auf einem Root Server Nginx auf Port 80 und Apache2 auf Port 8080 laufen. Nginx soll nur die statischen Inhalte ausspielen, der Apache übernimmt PHP per PHP-FPM über proxy_fcgi. Der Nginx gibt also alle PHP Dateien per proxy_pass an den Apache weiter. Das klappt auch alles soweit, bis auf das URL Rewriting. Das Frontend ist z.B. nur über /index.php/ueber-uns, /index.php/produlte, das Backend nur über /index.php/contao, /index.php/contao/install erreichbar. Rufe ich z.B. /contao auf, wird die Seite im Frontend gerendert, im Apache Log sehe ich auch nur den Request /index.php.
    Auf Apache-Seite ist alles korrekt konfiguriert, weil bei direktem aufruf, z.B. über http://X.X.X.X:8080/contao/install das Rewriting mit der default. htaccess einwandfrei funktioniert. Ich finde einfach nicht die richtige Stelle in der nginx.conf, damit das Rewriting analog zum Apache funktioniert. Anbei meine Conf:

    PHP-Code:
    server {
        
    listen 443 ssl http2;
        
    server_name mydomain.com;
        
    root /var/www/html/mydomain.com/web;

        
    location / {
            
    index index.php;
            
    try_files $uri $uri/ /index.php$is_args$args;
        }

        
    location ~ [^/]\.php(/|$) {
            
    proxy_set_header X-Real-IP  $remote_addr;
            
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            
    proxy_set_header Host $host;
            
    proxy_set_header X-Forwarded-Proto https;
            
    proxy_pass http://X.X.X.X:8080;
        
    }

        
    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            
    log_not_found off;
            
    try_files $uri /index.php$is_args$args;
        }

        
    location = /favicon.ico {
            
    log_not_found off;
            
    access_log off;
            
    try_files $uri /index.php$is_args$args;
        }

        
    location = /robots.txt {
            
    allow all;
            
    log_not_found off;
            
    access_log off;
            
    try_files $uri /index.php$is_args$args;
        }

        
    location ~ /\.well-known/acme-challenge/ {
            
    allow all;
            
    try_files $uri =404;
            break;
        }

        
    location ~ /\.ht {
            
    deny all;
        }


    Ich habe auch schon diverse Contao 4 Installationen mit Nginx als Webser und PHP per direktem fastcgi_pass am Laufen, nur unterscheidet sich die Config dort natürlich und man findet genug Config-Beispiele, nur halt nicht für den Einsatz als Reverse Proxy.
    Irgendwie fehlt mir der Part, die Request URI an den proxy_pass zu hängen oder halt vorher schon zu rewriten.
    Wäre über jede Hilfe dankbar!

    LG Matze

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.896
    Partner-ID
    10107

    Standard

    Moderation: Thema in das entsprechende Unterforum verschoben.

  3. #3
    Contao-Nutzer
    Registriert seit
    08.01.2018.
    Beiträge
    9

    Standard Gelöst..

    Falls es jemanden interessiert, eine Anleitung für Wordpress hat mich auf den richtigen Weg gebracht:

    PHP-Code:
        location / {
          
    index index.php;
          
    try_files $uri $uri/ /index.php?$args;
        }

        
    location ~ \.php$ {
            
    proxy_set_header X-Real-IP $remote_addr;
            
    proxy_set_header X-Forwarded-For $remote_addr;
            
    proxy_set_header X-Forwarded-Host $host;
            
    proxy_set_header Host $host;
            
    proxy_set_header X-Forwarded-Proto $scheme;
            
    proxy_pass http://X.X.X.X:8080$request_uri;
        


  4. #4
    Contao-Nutzer
    Registriert seit
    30.12.2020.
    Beiträge
    1

    Frage proxy_pass http://X.X.X.X:8080$request_uri;

    Hallo "derMatze82",
    es ist gut, dass die Lösung für proxy_pass http://X.X.X.X:8080$request_uri; gepostet wurde. So habe ich den Beitrag finden können ;-)
    Die Aussage "eine Anleitung für Wordpress hat mich auf den richtigen Weg gebracht" bringt mich zu der Bitte, doch die Quellenangabe der gefundenen "Anleitung für Wordpress" zu posten, weil ich ein ähnliches Problem mit dem Request (nginx-auf-Client zu ngings-auf-Proxi zum Router) habe.
    Besten Gruss aus der Eifel, EifelTUX ;-)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •