我有一台运行 Arch Linux ARM 的 Raspberry Pi,我将其用作 HTTP 服务器,使用 Apache/2.4.29 (Unix)。最近,我一直在尝试将此机器配置为正向代理,以便使用 corkscrew 或 proxytunnel 连接到互联网,同时使用我的笔记本电脑在邪恶的防火墙后面。因此,我添加了一个具有以下配置的虚拟服务器:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName proxy.mydomain.com
ErrorLog "/var/log/httpd/proxy-error_log"
CustomLog "/var/log/httpd/proxy-access_log" common
#SetEnv force-proxy-request-1.0 1
#SetEnv proxy-nokeepalive 1
ProxyRequests On
ProxyVia Block
AllowCONNECT 443 563 22 XYZ
<Proxy *>
Require ip XXX.XXX.XXX.XXX
</Proxy>
# The reverse proxy works, but the forward doesn't
#ProxyPass /test https://google.it
</VirtualHost>
除此之外,我还有两个其他虚拟服务器。有趣的是,如果它是唯一启用的虚拟主机,代理就可以工作,但如果我启用另一个虚拟主机,代理就不再工作了。
当代理不工作时,我无法将其与 Firefox 一起使用(它说代理拒绝连接),也无法将其与 Corkscrew 一起使用(它说代理无法连接到服务器:方法不允许);此外,在这种情况下,Apache 日志文件显示“服务器配置拒绝客户端:/etc/httpd/htdocs”。但是,当我仅启用代理虚拟主机时,一切正常,所以这不是 Corkscrew 的问题。有人知道为什么吗?谢谢。
答案1
您无法匹配正向代理的 ServerName 或 ServerAlias。
您可以看看 sslh 或 sshttp,它们是 ssh/http(s) 多路复用器,可以在相同的端口上使用两种协议。
干杯