我试图了解的可行性是为任何客户端的浏览器创建一个完全透明的系统,让我可以使用如下语法访问任何目标网址:
我想要做的事情已经完美地报告了,但这里没有提供解决方案http://mailman.nginx.org/pipermail/nginx/2008-December/008987.html
https://example.com/<uri_to_visit>。
系统必须像浏览器配置为使用代理一样工作,但我不想强迫用户配置代理参数。
我想使用 nginx 代理 uri 请求,然后使用 squid 处理请求。nginx 和 squid 位于同一台服务器上,但也可能位于不同的服务器上。我尝试使用以下方式从任何浏览器访问任何网站(例如)google.com
"https://example.com/service/google.com"
example.com 由我的一个 nginx web 服务器管理
下列的 https://stackoverflow.com/questions/28331813/reverse-proxy-from-nginx-to-squid
nginx 配置部分设置如下:
location ~* ^/service/(.*) {
proxy_pass http://localhost:3128/$1$is_args$args;
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_set_header Host $host;
proxy_redirect off;
}
和 squid.conf
http_port 3128 vhost allow-direct
现在,当我尝试访问https://example.com/service/google.com squid 日志报告。
我认为这是有关 proxy_pass 的问题,但是我尝试了很多次却无法正确修复它。
鱿鱼日志
TCP_MISS/403 4495 GET http://example.com/google.com - HIER_NONE/- text/html
TCP_MISS/403 4589 GET http://example.com/google.com - ORIGINAL_DST/127.0.0.1 text/html