1

我需要配置 nginx,它充当我的站点 (myportal.com) 的反向代理。nginx 可以通过 squid 代理连接到实际站点。

客户端 -> nginx -> Squid 代理 -> 网络服务器。

笔记:

一个。客户端假定 nginx 作为 web 服务器(myportal.com)。

湾。nginx 通过 squid 代理从实际服务器 (myportal.com) 获取内容。

谢谢塔伦。当目标 Web 服务器可直接访问时,我们已成功将 nginx 配置为反向代理。但是在连接到网络的同时,在 squid 后面提供服务。我们正面临问题。由于客户端必须连接到 nginx,假设它是目标服务器(因此没有发送代理标头)。——</p>

我们也尝试了以下方法。

upstream @squid {
    server localhost:3128;
}

server {
    listen 80;
    server_name relay.example.com;

    location / {
        proxy_pass http://@squid/$scheme://$host$uri;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Request-URI $request_uri;

        proxy_redirect off;
    }
}
4

1 回答 1

0

试试这个配置,它使用 Nginx 作为反向代理和缓存,可能可以帮助你了解:

    ...
    proxy_buffering    on;
    proxy_cache_path   /home/cache levels=1:2 keys_zone=myportal:256m max_size=5g inactive=24h use_temp_path=off;
    proxy_buffer_size  8k;
    proxy_buffers      8 24k;

    server {
        listen       80;
        server_name  _;

        location / {
            proxy_cache myportal;
            proxy_cache_use_stale updating error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_cache_revalidate on;
            proxy_cache_min_uses 1;
            proxy_cache_lock on;
            proxy_cache_valid 200 301 304 2d;
            proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;

            proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host myportal.tld;
            proxy_set_header Connection "";
            proxy_http_version 1.1;
            proxy_pass https://myportal.tld/;
        }
    }
    ...
于 2017-08-27T11:37:48.920 回答