【发布时间】:2014-04-30 12:10:02
【问题描述】:
我已经使用 Tinyproxy 在 EC2 实例上设置了一个简单的代理(默认配置监听/允许所有传入连接)。这很好用。如果我为了调试,在浏览器中填写 IP 地址和代理设置的端口,我可以毫无问题地浏览代理。一切正常。但是,如果我在实例前面创建一个 EC2 负载均衡器(确保正确转发 http 端口),它只会在我浏览负载均衡器 IP 时挂起。这对我来说似乎是一个谜。该实例正在运行,负载均衡器报告“服务中”,并且绕过负载均衡器工作,但通过它只是挂起。我错过了什么,我应该在哪里查找错误?
更新
我现在查看了 Tinyproxy 的日志:尝试通过实例代理直接访问 google.com 时,我看到如下日志:
CONNECT Apr 30 20:41:33 [1862]: Request (file descriptor 6): GET http://google.com/ HTTP/1.1
INFO Apr 30 20:41:33 [1862]: No upstream proxy for google.com
CONNECT Apr 30 20:41:33 [1862]: Established connection to host "google.com" using file descriptor 7.
INFO Apr 30 20:41:33 [1862]: Closed connection between local client (fd:6) and remote client (fd:7)
CONNECT Apr 30 20:41:33 [1901]: Connect (file descriptor 6): x1-6-84-1b-ADDJF-20-07-92.fsdfe [430.12327.65117.615]
CONNECT Apr 30 20:41:33 [1901]: Request (file descriptor 6): GET http://www.google.ie/?gws_rd=cr&ei=_V9hU8DeFMTpPJjygIgC HTTP/1.1
INFO Apr 30 20:41:33 [1901]: No upstream proxy for www.google.ie
CONNECT Apr 30 20:41:33 [1901]: Established connection to host "www.google.ie" using file descriptor 7.
但是,如果我尝试通过负载均衡器访问 google,然后转发到实例,那么我会看到如下日志:
CONNECT Apr 30 20:42:54 [1860]: Request (file descriptor 6): GET / HTTP/1.1
CONNECT Apr 30 20:42:54 [1869]: Connect (file descriptor 6): ip-432-2383245-53.eu-west-1.compute.internal [10.238.155.237]
CONNECT Apr 30 20:42:54 [2037]: Connect (file descriptor 6): ip-432-2383245-53.eu-west-1.compute.internal [10.238.155.237]
INFO Apr 30 20:42:54 [1860]: process_request: trans Host GET http://google.com:8888/ for 6
INFO Apr 30 20:42:54 [1860]: No upstream proxy for google.com
CONNECT Apr 30 20:43:12 [1861]: Connect (file descriptor 6): ip-432-2383245-53.eu-west-1.compute.internal [1230.23845.515.2537]
CONNECT Apr 30 20:43:12 [2035]: Connect (file descriptor 6): ip-432-2383245-53.eu-west-1.compute.internal [143.238.12345.117]
ERROR Apr 30 20:43:12 [2035]: read_request_line: Client (file descriptor: 6) closed socket before read.
ERROR Apr 30 20:43:12 [1861]: read_request_line: Client (file descriptor: 6) closed socket before read.
ERROR Apr 30 20:43:12 [2035]: Error reading readble client_fd 6
ERROR Apr 30 20:43:12 [1861]: Error reading readble client_fd 6
WARNING Apr 30 20:43:12 [2035]: Could not retrieve request entity
WARNING Apr 30 20:43:12 [1861]: Could not retrieve request entity
据我所知,ELB 正在尝试通过端口 8888 发送请求
【问题讨论】:
-
我对代理一无所知,但它有日志,它是否接收到请求?
-
问得好,我想是的,我看看再回来
-
我现在查看了来自微型代理的日志。它确实收到了请求。但是负载均衡器似乎将代理的列表/转发端口附加到 url/http 请求(请参阅问题更新)
标签: amazon-ec2 proxy load-balancing