Apache Proxy 应重试与具有多个 IP 的域的连接

Apache Proxy 应重试与具有多个 IP 的域的连接

我有一个运行 Apache 2.4 的代理服务器。客户端使用它来连接到fcm.googleapis.com

配置非常简单:

Listen 8099

ServerTokens Prod
ServerSignature Off

<VirtualHost *:8099>

    ProxyRequests on
    ProxyVia off
    ProxyTimeout 30

    <Proxy *>
        Require ip XXX
        Require ip YYY
        Require local
    </Proxy>

    LogLevel warn
    ErrorLog "logs/forwardproxy_error_log"
    CustomLog "logs/forwardproxy_access_log" combined

    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} ^OPTIONS
    RewriteRule .* - [F]

</VirtualHost>

fcm.googleapis.com映射到多个IP地址。

从连接互联网的机器:

fcm.googleapis.com is an alias for googleapis.l.google.com.
googleapis.l.google.com has address 216.58.207.234
googleapis.l.google.com has address 172.217.20.42
googleapis.l.google.com has address 216.58.207.202
googleapis.l.google.com has address 172.217.22.170
googleapis.l.google.com has address 172.217.21.170
googleapis.l.google.com has address 216.58.211.10
googleapis.l.google.com has address 172.217.21.138
googleapis.l.google.com has IPv6 address 2a00:1450:400f:806::200a

由于某些(网络/防火墙相关)原因,上面的某些 IP 地址无法通过我的 Apache 代理访问(ex. 172.217.0.0/16),而有些可以访问(ex. 216.58.0.0/16)。但是,由于某些 IP 段仍然可用,因此后面的服务fcm.googleapis.com应该仍然可用,因此代理客户端出现连接超时的情况是没有道理的。

curl 和 wget 测试:

[user@server ~]$ wget https://fcm.googleapis.com
--2019-08-16 11:50:30--  https://fcm.googleapis.com/
Connecting to proxyip:8099... connected.
Unable to establish SSL connection.
[user@server ~]$ curl -X GET https://fcm.googleapis.com
curl: (35) TCP connection reset by peer
[ansible@server ~]$

更新 1:这些客户端上的代理 IP 和端口设置正确(例如export http_proxy=http://proxyip:8099; export https_proxy=$http_proxy)。我知道连接已到达代理,因为其他一些网站(例如 Facebook)可以访问。

所以我的问题是:我如何确保连接fcm.googleapis.com不会失败?应该在哪里修复它?在 Apache 代理上(如果是,如何修复?)还是在代理客户端上?

任何建议都将不胜感激。谢谢!

相关内容