Ich versuche, den gesamten Datenverkehr von www.impactteachers.com/teach auf application.impactteachers/teach umzuleiten.
Daher ist unser Bewerbungsformular auch über die folgende URL erreichbar: www.impactteachers.com/teach/
Dies funktioniert auf unserem aktuellen Apache-Server mit dieser Regel einwandfrei:
ProxyRequests Off
ProxyPreserveHost On
<Proxy http://application.impactteachers.com:8080/teach/>
Order allow,deny
Allow from all
</Proxy>
ProxyPass /teach/ http://application.impactteachers.com:8080/teach/
ProxyPassReverse /teach/ http://application.impactteachers.com:8080/teach/
Da wir unsere Site auf einen Nginx-Server migrieren, müssen wir gemäß diesem Artikel eine neue Regel erstellen:Nginx-Lösung für Apache ProxyPassReverseund mit Ihrer bisherigen Hilfe ist dies der aktuelle Code:
location /teach {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://application.impactteachers.com:8080/teach;
proxy_redirect default;
}
Ich habe dies getestet und es wird immer noch der gleiche 404-Fehler angezeigt.
Antwort1
Versuchen Sie so etwas:
upstream teach_backend {
server application.impactteachers.com:8080 fail_timeout=2s;
keepalive 32;
}
server {
listen 80;
server_name your_server_name.com;
location /teach {
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://teach_backend/teach;
proxy_redirect http://teach_backend/teach /teach;
#proxy_redirect default;
#expires -1;
#add_header Cache-Control "private";
}
}