首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用代理前端而不是443端口平衡后端443?

如何使用代理前端而不是443端口平衡后端443?
EN

Server Fault用户
提问于 2020-07-30 12:04:14
回答 1查看 284关注 0票数 0

我的haproxy配置是:

代码语言:javascript
复制
# 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。它会导致请求失败。为什么会发生这种事?

EN

回答 1

Server Fault用户

发布于 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:头来实现。

代码语言:javascript
复制
http-request replace-header Location ^https://123.44.44.44/(.*)$ https://123.44.44.44:5200/\1

如果您使用HAProxy方法,请注意,您需要分别对IP地址和域名进行访问(如果您将同时使用这两种方式并希望两者都使用)。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1027313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档