Haproxy - 无法设置最基本的代理
Haproxy - Cannot setup the most basic proxy
拜托,有人可以看看这个配置吗?
global
log stdout format raw local0 debug
stats timeout 30s
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 50000
timeout client 50000
timeout server 50000
frontend app
bind *:15080
default_backend myback
backend myback
server site google.com:80 check
为什么这不起作用?如果我尝试访问 127.0.0.1:15080 需要一些时间,然后浏览器中的 url 会更改为 www.google.com:16080,这显然不会带你去任何地方。浏览器说:"This site can’t be reached - ERR_CONNECTION_TIMED_OUT".
那么为什么它不像人们期望的那样代理到端口 80?
日志条目说明不了什么:
127.0.0.1:50871 [01/Jul/2019:14:39:45.879] app myback/site 0/0/20/84/104 301 681 - - ---- 2/2/0/0/0 0/0 "GET / HTTP/1.1"
Haproxy 版本:
HA-Proxy version 2.0.0-4fb65f-8 2019/06/19 - https://haproxy.org/
编辑:
我通过反复试验以某种方式解决了问题..
实际上,HAProxy 正在按预期工作并将您的请求代理到 google。然而,Google 看到主机 header 是 'Host: 127.0.0.1:15080',并以 301 重定向响应到 www.google.com:15080
。您可以在不设置 HAProxy 的情况下看到这一点:
$ curl -I -H 'Host: 127.0.0.1:15080' google.com
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com:15080/
Content-Type: text/html; charset=UTF-8
Date: Mon, 01 Jul 2019 14:26:09 GMT
Expires: Wed, 31 Jul 2019 14:26:09 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 225
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
如果您想为 google 设置一个非常基本的代理,您需要确保您的主机 header 匹配并且您正在通过 https 发送请求。
backend myback
http-request set-header Host www.google.com
server site google.com:443 ssl verify none check
拜托,有人可以看看这个配置吗?
global
log stdout format raw local0 debug
stats timeout 30s
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 50000
timeout client 50000
timeout server 50000
frontend app
bind *:15080
default_backend myback
backend myback
server site google.com:80 check
为什么这不起作用?如果我尝试访问 127.0.0.1:15080 需要一些时间,然后浏览器中的 url 会更改为 www.google.com:16080,这显然不会带你去任何地方。浏览器说:"This site can’t be reached - ERR_CONNECTION_TIMED_OUT".
那么为什么它不像人们期望的那样代理到端口 80?
日志条目说明不了什么:
127.0.0.1:50871 [01/Jul/2019:14:39:45.879] app myback/site 0/0/20/84/104 301 681 - - ---- 2/2/0/0/0 0/0 "GET / HTTP/1.1"
Haproxy 版本:
HA-Proxy version 2.0.0-4fb65f-8 2019/06/19 - https://haproxy.org/
编辑:
我通过反复试验以某种方式解决了问题..
实际上,HAProxy 正在按预期工作并将您的请求代理到 google。然而,Google 看到主机 header 是 'Host: 127.0.0.1:15080',并以 301 重定向响应到 www.google.com:15080
。您可以在不设置 HAProxy 的情况下看到这一点:
$ curl -I -H 'Host: 127.0.0.1:15080' google.com
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com:15080/
Content-Type: text/html; charset=UTF-8
Date: Mon, 01 Jul 2019 14:26:09 GMT
Expires: Wed, 31 Jul 2019 14:26:09 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 225
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
如果您想为 google 设置一个非常基本的代理,您需要确保您的主机 header 匹配并且您正在通过 https 发送请求。
backend myback
http-request set-header Host www.google.com
server site google.com:443 ssl verify none check