我已经安装squid了一个带有--enable-ssl配置的非透明代理/缓存服务器。它是父代理服务器的子代proxy1.ut.ac.ir。
HTTPURL一切正常,但任何HTTPSURL 都由 a 响应404 Server not found(例如Gmail或https://www.google.com)。
这是access.log打开www.gmail.com的条目:
1279493581.278 544 127.0.0.1 TCP_MISS/302 1136 GET http://mail.google.com/mail/ - DEFAULT_PARENT/proxy1.iut.ac.ir text/html
1279493581.283 0 127.0.0.1 TCP_MISS/404 0 CONNECT www.google.com:443 - DIRECT/- -
Run Code Online (Sandbox Code Playgroud)
终端中的鱿鱼说:
2010/07/18 18:52:27| ipcacheParse: No Address records in response to 'www.google.com'
Run Code Online (Sandbox Code Playgroud)
这是squid.conf:
http_port 3128
http_access allow all
cache_peer proxy1.ut.ac.ir parent 3128 0 no-query default no-digest no-netdb-exchange
cache_dir ufs /usr/local/squid/var/cache 100 …Run Code Online (Sandbox Code Playgroud) 我们有一个 Squid 透明代理正在运行,这很棒,我敢说真棒。问题是当一些非常随机的站点似乎讨厌鱿鱼时。Cox.com 是其中之一。现在我们只是设置了一个 IPtables 规则来将请求转发到那个 IP,而不是将它发送到鱿鱼缓存。
拥有一个我们可以在 squid 中设置的“坏”站点的 ACL 真是太棒了,这样如果客户要求访问这些站点之一,它就可以让他们直接访问它,完全避免使用 squid 代理。那可能吗?或者 iptables 是最好的解决方案?
这是一个愚蠢的问题。任何客户端或服务器仍在使用 HTTP 1.0 吗?这是因为我正在开发一个需要 HTTP 1.1 的代理服务器程序
我在新的 CentOS 5.5 上安装了 squid 并为 iptables 添加了这个规则:
-A RH-Firewall-1-INPUT -m state --state NEW,ESTABLISHED,RELATED -m tcp -p tcp --dport 8080 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
使用这个 HOWOT:http ://www.cyberciti.biz/tips/howto-rhel-centos-fedora-squid-installation-configuration.html
但是客户端无法通过代理访问互联网。
我尝试使用 telnet 连接到端口 8080,但没有成功。所以我尝试在代理服务器上禁用 iptables,一切正常。
所以 iptables 拒绝连接到鱿鱼端口。
我该如何解决这个问题?规则有问题吗?
编辑
的输出iptables -L -n -v:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
21 2802 RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target …Run Code Online (Sandbox Code Playgroud) 如何配置 squid(或任何其他)代理服务器以记录通过 HTTPS 访问的 URL 和下载的文件?是否可以?
我最近设置了一个 Squid 代理服务器用于缓存目的,并想开始将我的台式机和笔记本电脑指向它。
我的计算机运行的是带有 IE8 的 Windows XP 和带有 IE9 的 Windows 7。
所以我试图将鱿鱼设置为 HTTP 代理。此代理仅用于测试目的且位于内部网络上,无法从外部访问。我可以很好地连接到代理,但是 Squid 403 的每个 HTTP 请求。在快速而肮脏的尝试中,我将以下几行添加到squid.conf:
acl all src 0.0.0.0/0.0.0.0
http_access allow all
Run Code Online (Sandbox Code Playgroud)
对于每个 HTTP 请求,我仍然得到 403。想知道有没有人知道怎么回事?
内部网络在 10.0.0.0/8 区块上。如果需要更多信息,请告诉我。
注意:我不需要鱿鱼来做任何额外的事情,实际上只是充当一个简单的 HTTP 代理。
我已经设置了一个 Web 服务器来在http://localhost:3000上查看我的存储库(一个 Gitalist 实例),我想使用 nginx 设置一个代理。
我希望在接收到 DOMAIN/git/ 之类的 URI 时将请求代理到我的存储库视图。
我当前的 nginx 配置声明如下:
location /git {
proxy_pass http://localhost:3000/;
}
Run Code Online (Sandbox Code Playgroud)
请求确实被代理到服务器,但没有任何图像/链接或 css 可以解析,因为它们指向“ http://localhost:3000/logo.png ”例如。
编辑
如果我 proxy_pass 到实际服务器地址,它确实有效:
location /git {
proxy_pass http://192.168.1.111:3000/;
}
Run Code Online (Sandbox Code Playgroud)
但是应该有一种在代理时隐藏实际服务器地址的方法。
我目前正在使用 nginx 代理回有 8 个工人的 gunicorn。我正在使用具有 4 个虚拟核心的亚马逊超大实例。当我直接连接到 gunicorn 时,我收到大约 10K 请求/秒。当我从 nginx 提供静态文件时,我收到大约 25 个请求/秒。
但是当我将 gunicorn 放在同一台物理服务器上的 nginx 后面时,我得到大约 5K 请求/秒。我知道 nginx 会有一些延迟,但我认为可能有问题,因为它下降了 50%。有人听说过类似的吗?任何帮助都会很棒!
这是相关的nginx conf:
worker_processes 4;
worker_rlimit_nofile 30000;
events {
worker_connections 5120;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
}
Run Code Online (Sandbox Code Playgroud)
启用站点/默认:
upstream backend {
server 127.0.0.1:8000;
}
server {
server_name api.domain.com ;
location / {
proxy_pass http://backend;
proxy_buffering off;
}
}
Run Code Online (Sandbox Code Playgroud) 我与发布另一个问题的人处于完全相同的情况,我试图通过网关服务器建立 ssh 连接,而不必 ssh 进入网关并从那里再次手动 ssh 到目标服务器。我正在尝试设置那里接受的答案中给出的解决方案,~/.ssh/config其中包括:
host foo
User webby
ProxyCommand ssh a nc -w 3 %h %p
host a
User johndoe
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试时ssh foo,我的连接会保持活动状态 3 秒,然后因Write failed: Broken pipe错误而终止。删除该-w 3选项可以解决问题。-w 3在原始解决方案中这样做的目的是什么,为什么Broken pipe在我使用它时会导致错误?省略它有什么害处?