为什么 perlbal 的重新代理会给我任何远程 URL 带来 503 错误?
X-REPROXY-URL: /path/to/a/local/file.jpg = working
X-REPROXY-URL: http://a-public-file-in-an-s3-bucket.jpg = HTTP 503
我的 perlbal 配置如下:
CREATE POOL test_pool
POOL test_pool ADD 127.0.0.1:8888
POOL test_pool ADD 127.0.0.1:8889
CREATE SERVICE balancer
SET listen = 0.0.0.0:80
SET role = reverse_proxy
SET pool = test_pool
SET persist_client = on
SET persist_backend = on
SET verify_backend = on
SET enable_reproxy = true
ENABLE balancer
我知道我正确设置了标题,因为正如我所说,它适用于本地文件和同一域的 URL。
答案1
Perlbal 通过 HTTP 路由请求,因此 HTTP 请求需要满足 Web 服务器的规则或 ACL。
最简单的检查方法是使用 curl 模拟请求:例如:curl -vvhttp://127.0.0.1:8888/a-public-file-in-an-s3-bucket.jpg
检查服务器的 access_log 或 error_log。如果您运行虚拟网络服务器,则可能需要指定 FQDN 而不是 IP 地址。