nginx proxy

Sziasztok!

A felállás a következő lenne.
HTTPS kérés beérkezik az nginxhez. Ő ezt terminálja.
A kérést tovább küldi egy másik HTTP proxynak, aki végül eljut a célhoz.

Hogy kell megvalósítani, hogy az nginx egy HTTP proxynak továbbítsa a kérést, és ne közvetlenül a webszervernek?

Itt a jelenlegi konfig, ami közvetlenül a webszerverhez megy. Ha proxy_passnak a proxyt adom meg, akkor nem megy.


user  nobody nobody;
worker_processes  1;


events {
    worker_connections  2048;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       443;
        server_name  localhost;
                ssl on;
                ssl_certificate /snakeoil.pem;
                ssl_certificate_key /snakeoil.key;


        location / {
            proxy_pass http://10.0.200.41/;
            proxy_set_header   X-Real-IP        $remote_addr;
        }
}
}

Hozzászólások

A proxy_pass-nak elégnek kellene lennie, hogy a proxy-t használja... Éles oldalról van szó? Mert ha igen, akkor server_name-nek ne a localhost-ot add meg, hanem a domaint. Logokban nincs semmi hasznos?

De proxy_passnak, hogy kellene kinéznie?
Tegyük fel, hogy 10.0.1.1 az nginx host, 10.0.1.2:8080 egy squid, és 10.0.1.41 a webszerver.

A kérést az nginx kapja meg, és a squidnek továbbítja.

Ebben az esetben "server_name 10.0.1.41" és a "proxy_pass http://10.0.1.2:8080/"? A server_name nem csak azt határozza meg, hogy az nginx milyen host headerre hallgatózik? Leírásokból nekem ez jön le.

Bocs, ha hülyeséget kérdezek, de nem igazán találok ilyenre példát, hogy az nginx még egy HTTP proxyn is átjátssza a kérést.

A proxy_pass-nak ugyanúgy kell kinéznie, mintha direktben a webszervert érné el, csak az ip-t és portot kell megváltoztatni a proxy címére, viszont a squid-et is fel kell okosítani, hogy reverse proxy-ként működjön. http://wiki.squid-cache.org/SquidFaq/ReverseProxy
Amúgy javasolnám ezek helyett az Stunnelt és a Varnisht erre a feladatra.

A doksi ezt mondja:

It is an HTTP/1.0 proxy without the ability for keep-alive requests yet. (As a result, backend connections are created and destroyed on every request.) Nginx talks HTTP/1.1 to the browser and HTTP/1.0 to the backend server.

http://wiki.nginx.org/HttpProxyModule

Szóval az a proxy ahove az nginx küldi a koneksönt az elfogadja a HTTP/1.0 csatlakozást?

----
올드보이
http://molnaristvan.eu/