我正在尝试使用 HAproxy 将旧的 ASP 请求重定向到我们的 ASP 服务器,如下所示:
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4096
user haproxy
group haproxy
daemon
nbproc 2
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 4096
frontend main 0.0.0.0:80
acl url_legacy path_beg -i /wsMMC
acl url_legacy path_end -i .asmx
acl url_static path_beg -i /public
acl url_static path_end -i .jpg .jpeg .png .gif .ico .css .zip .tgz .gz .rar .bz2 .pdf .txt .tar .wav .bmp .rtf .flv .swf .html .htm .apk .jad
use_backend static if url_static
use_backend legacy if url_legacy
default_backend www
backend www
balance roundrobin
server app1 10.100.46.3:3001 check
server app2 10.100.46.4:3001 check
backend static
balance roundrobin
server app1 10.100.46.3:80 check
server app2 10.100.46.4:80 check
backend legacy
server legacy www.legacy.com:80 check
但是我收到的服务器响应是 404 - 资源未找到。直接访问 www.legacy.com/ws/derp.asmx 会返回正确的异常代码(因为我使用的是 GET 而不是 POST)。有什么建议吗?
我尝试替换以 /images 开头的路径和以 .png 结尾的路径,然后我就可以毫无问题地检索我们的徽标文件。
远程服务器(legacy.com)是一台 IIS7 Windows 机器。
答案1
IIS 服务器必须绑定到与代理使用的域相同的域。在我的示例中,HAproxy 绑定到 test.domain.com,而 IIS 仅监听 domain.com。将 test.domain.com 添加到名称列表后,IIS 应该接受转发并开始工作。