我的haproxy配置是:
# Configuration for 678da17a-5c8f-4d2b-9431-f3019aae9726
global
daemon
user nobody
group haproxy
log /dev/log local0 debug alert
log /dev/log local1 notice alert
maxconn 2000
stats socket /var/lib/neutron/lbaas/v2/678da17a-5c8f-4d2b-9431-f3019aae9726/haproxy_stats.sock mode 0666 level user
defaults
log global
retries 3
option redispatch
timeout connect 5000
timeout client 50000
timeout server 50000
frontend 8e85521c-f92b-401a-a72f-9f3d9dbd9deb
option tcplog
bind 123.44.44.44:5200
mode tcp
default_backend 46a948a1-1043-437d-83d0-e25acf0c94fd
backend 46a948a1-1043-437d-83d0-e25acf0c94fd
mode tcp
balance roundrobin
server 9add0118-0255-4ee3-998a-875fb251624b 123.23.23.23:443 weight 1我想配置前端,使用5200端口访问后端服务器123.23.23.23:443。但是当我请求https://123.44.44.44:5200时,请求更改为https://123.44.44.44/index.html。它会导致请求失败。为什么会发生这种事?
发布于 2020-07-31 00:25:11
HAProxy正在从后端请求https://123.44.44.44/。这是根目录,而不是文件,因此后端响应的方法是将浏览器重定向到默认(index.html)文件,从后端的角度来看,该文件位于https://123.44.44.44/index.html。通过在浏览器中使用开发工具来确认这一点,您可能会看到301代码。
(至少)有两种方法来处理这件事。首先是在后端web服务器上--后端不知道端口5200,除非您将它配置为。第二个是在HAProxy中,通过重写Location:头来实现。
http-request replace-header Location ^https://123.44.44.44/(.*)$ https://123.44.44.44:5200/\1如果您使用HAProxy方法,请注意,您需要分别对IP地址和域名进行访问(如果您将同时使用这两种方式并希望两者都使用)。
https://serverfault.com/questions/1027313
复制相似问题