Reverse proxy haproxy不转发主机的反向代理
我正在尝试将运行在一台服务器上的HAproxy配置为将请求转发到我在appfog上运行的某些应用程序,但它已停止工作。我已经检查了配置,但没有发现问题 我怀疑主机信息没有被正确转发,因为当我进入domain1.com时,我被路由到appfog上的domain1.app.com,但服务器抛出404 这是我的配置文件-Reverse proxy haproxy不转发主机的反向代理,reverse-proxy,haproxy,appfog,Reverse Proxy,Haproxy,Appfog,我正在尝试将运行在一台服务器上的HAproxy配置为将请求转发到我在appfog上运行的某些应用程序,但它已停止工作。我已经检查了配置,但没有发现问题 我怀疑主机信息没有被正确转发,因为当我进入domain1.com时,我被路由到appfog上的domain1.app.com,但服务器抛出404 这是我的配置文件- global maxconn 4096 user haproxy group haproxy d
global
maxconn 4096
user haproxy
group haproxy
daemon
log 127.0.0.1 local0 info
log 127.0.0.1 local1 notice
defaults
log global
mode http
option httplog
option dontlognull
option originalto
option forwardfor
stats enable
stats auth domain1:xxxxxx
option httpclose
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
backend domain1_at_appfog
reqirep ^Host:\ domain2.com Host:\ domain2.web.app.com
server appfog1 domain2.web.app.com:80
backend domain2_at_appfog
reqirep ^Host:\ domain1.com Host:\ domain1.app.com
server appfog2 domain1.app.com:80
backend local_host_site
server this1 127.0.0.1:8080
frontend superliciousLove *:80
acl www_domain1 hdr_dom(host) -i www.domain1.com
acl local_host url_sub www2
use_backend domain1_at_appfog if www_domain1
use_backend local_host_site if local_host
default_backend domain1_at_appfog
根据提供的示例,如果准确,则问题在于:
backend domain1_at_appfog
reqirep ^Host:\ domain2.com Host:\ domain2.web.app.com
server appfog1 domain2.web.app.com:80
您的ACL正在检查www.domain1.com,并路由到appfog上的后端domain1\u
。但是,您正在domain2.com
上进行替换,而不是domain1.com
,appfog只看到domain1.com
,而不是重新映射的主机名
如果您需要后端支持多个域,您可以更改对requirep
的使用,以使用appfog主机替换所有匹配的主机:
backend domain1_at_appfog
reqirep ^Host: Host:\ domain1.web.app.com
server appfog1 domain1.web.app.com:80
backend domain2_at_appfog
reqirep ^Host: Host:\ domain2.app.com
server appfog2 domain2.app.com:80