So richten Sie Nginx als Reverse-Proxy ein

So richten Sie Nginx als Reverse-Proxy ein

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.comgibt zurück:

301 Moved Permanently
Location:https://www.google.com/

Ihr Browser wird umgeleitet zuhttp://www.google.com

verwandte Informationen