In meiner vorherigen Frage hiernginx löst alles auf eine andere IP auf (zeigt es an), außer einer bestimmten Datei und einem bestimmten UnterverzeichnisIch habe gefragt, ob ich meine Whitelabel-Website und ihre Seiten auf eine andere IP-Adresse auflösen kann, aber einige Unterordner und Dateien zum Laden auf meinem Server behalte. Es stellte sich heraus, dass das ganz einfach ist, und die endgültige Lösung sah so aus:
location /robots.txt {
alias {DOCROOT};
}
server_name {SERVERNAME};
location ~ /\.php$ {
proxy_pass 10.10.10.10 <== whitelabel ip;
proxy_set_header Host {SERVERNAME};
proxy_set_header X-Forwarded-For myaccount.whitelabelsite.com;
proxy_redirect off;
proxy_set_header Connection "Keep-Alive";
proxy_buffering off;
}
Also lade ich hier alles von meiner Whitelabel-Website unter meiner Domain, behalte aber weiterhin robots.txt zum Laden von meinem Hosting und einigen anderen Dateien bei.
Das Problem besteht jetzt darin, dass ich mich bei Verwendung dieser Methode nicht bei meinem Konto auf der Whitelabel-Site anmelden kann.
Die Direktive ist also {SERVERNAME}
im Grunde mein Domänenname mydomain.com
und wenn ich versuche, mich anzumelden, mydomain.com/aff/panel
öffnet sie die Seite. Sie gibt keinen Fehler aus, sondern aktualisiert nur die Seite und tut nichts. Dasselbe gilt, wenn jemand eine Buchung vornehmen oder ein E-Mail-Formular senden möchte. Es öffnet Seiten, führt aber eigentlich keine Aktionen aus.
Als ich die DNS-Umleitung verwendet habe, hat alles funktioniert, jetzt nicht mehr. Fehlen mir Proxy-Informationen oder Header, die Post-/Get-Aktionen an und von Whitelabel weiterleiten?
Antwort1
Die Backend-Anwendung unter „whitelabelsite.com“ funktioniert möglicherweise nicht richtig, wenn der Host nicht richtig eingestellt ist. Setzen Sie den Host-Header auf den Hostnamen, zu dem Sie den Proxy verwenden, und nicht auf Ihren eigenen.
proxy_set_header Host myaccount.whitelabelsite.com
Sind Sie sicher, dass Sie dies benötigen proxy_redirect off
? Dies könnte die Backend-Site daran hindern, Weiterleitungen zu senden.
Außerdem hat es wahrscheinlich nichts mit dem Problem zu tun, es X-Forwarded-For
sollte aber die IP-Adresse des Clients sein. Nginx verfügt über eine spezielle Variable, um die IP richtig hinzuzufügen.
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Ohne Zugriff auf alle Einzelheiten ist das ein bisschen Raterei, aber ich hoffe, es hilft.