Ich versuche, nginx so einzurichten, dass es sich als Reverse-Proxy verhält und auf einer von uns kontrollierten Subdomäne lauscht. Ich habe Beispiele aus dem Internet befolgt und sie funktionieren größtenteils mit einer Ausnahme, die mir nicht klar ist.
Untersuchen Sie den Serverblock unten:
server{
listen *:80;
server_name placehold.com;
charset utf-8;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log error;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
proxy_pass http://google.com/;
}
}
google.com ist ein Platzhalter für diesen Test.
Wenn ich eine URL wie " besuchehttp://placehold.com/test" das funktioniert perfekt, es leitet mich auf eine Google-Fehlerseite weiter und die URL im Browser bleibt als Typ erhalten. Aber wenn ich eine bloße URL eingebe wie "http://placehold.com/"Dann wird mein Browser auf die Google-Startseite umgeleitet. Die Google-URL wird deutlich im Browser angezeigt.
Wie kann ich den Reverse-Proxy dazu bringen, die URL für „/“-URLs sowie „/mit/einem/Pfad“-URLs richtig zu maskieren?
Antwort1
Ihr Proxy funktioniert einwandfrei. Visitng http://google.com
gibt zurück:
301 Moved Permanently
Location:https://www.google.com/
Ihr Browser wird umgeleitet zuhttp://www.google.com