首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Haproxy重定向

Haproxy重定向
EN

Stack Overflow用户
提问于 2021-07-29 19:55:55
回答 1查看 116关注 0票数 0

我有一个要从https://sede.example.com.br重定向到https://sede.example.pub的Haproxy。Haproxy配置没有遵循重定向的问题。

如果我使用传递-L参数的curl命令进行测试(遵循重定向),它工作得很好

代码语言:javascript
复制
curl -L https://sede.example.com.br

但我需要在没有-L选项的情况下工作,因为我有一个应用程序接口系统,它可以进行一些Post和Get操作,而不会遵循重定向。所以我需要在Haproxy中这样做。

配置:

代码语言:javascript
复制
global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

    # Default SSL material locations
    ca-base /etc/ssl/certs
    crt-base /etc/ssl/private

    # Default ciphers to use on SSL-enabled listening sockets.
    # For more information, see ciphers(1SSL). This list is from:
    #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
    # An alternative list with additional directives can be obtained from
    #  https://mozilla.github.io/server-side-tls/ssl-config-generator/?server=haproxy
    ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
    ssl-default-bind-options no-sslv3

defaults
    log global
    mode    http
    option  httplog
    option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http

frontend http-in
        option httplog
        bind *:80
        bind *:443 ssl crt /usr/local/etc/haproxy/haproxy.cfg/certs/
        timeout http-request 60s
        timeout http-keep-alive 4s
        acl https ssl_fc
        http-request set-header         X-Forwarded-Proto http if !https
        http-request set-header         X-Forwarded-Proto https if https

        stats uri /haproxy?examplehaproxystats74581257445
        log-format %{+Q}o\ %{-Q}ci\ -\ -\ [%T]\ %r\ %ST\ %B\ \"\"\ \"\"\ %cp\ %ms\ %ft\ %b\ %s\ \%Tq\ $

        acl sede_acl req.hdr(host) -i -m str sede.example.com.br
        redirect code 301 prefix https://sede.example.pub if sede_acl

对我的配置有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-02 09:33:40

你可以试试下面的代码片段,它还没有经过测试,但我希望你能理解

代码语言:javascript
复制
frontend http-in
    option httplog
    bind *:80
    bind *:443 ssl crt /usr/local/etc/haproxy/haproxy.cfg/certs/
    timeout http-request 60s
    timeout http-keep-alive 4s
    acl https ssl_fc
    http-request set-header         X-Forwarded-Proto http if !https
    http-request set-header         X-Forwarded-Proto https if https

    stats uri /haproxy?examplehaproxystats74581257445
    log-format %{+Q}o\ %{-Q}ci\ -\ -\ [%T]\ %r\ %ST\ %B\ \"\"\ \"\"\ %cp\ %ms\ %ft\ %b\ %s\ \%Tq\ $

    acl sede_acl req.hdr(host) -i -m str sede.example.com.br
    # redirect code 301 prefix https://sede.example.pub if sede_acl
    use_backend sede_acl if sede_acl
  
backend sede_acl
  http-request set-header Host sede.example.pub
  server sede-server sede.example.pub:443 sni sede.example.pub ssl
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68582153

复制
相关文章

相似问题

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