Dmitriy Shamenko
Dmitriy Shamenko

Reputation: 39

haproxy redirect scheme https if !$request_uri

If it's possible to disable https on some url, i try this, but it's not working. I need a piece of my site without https and redirect

frontend  http
    bind *:80
    mode http
    acl folder path_beg -i ^/somefolder/subfolder/.* ^/somefolder/subfolder2/.*
    redirect scheme https if !folder
    option http-server-close
    reqadd X-Forwarded-Proto:\ http
    option forwardfor header X-Real-IP
    default_backend nodes
frontend https
    bind *:443
    mode http
    option http-server-close
    reqadd X-Forwarded-Proto:\ https
    option forwardfor header X-Real-IP
    default_backend nodes
backend nodes
    balance leastconn
    server server1 10.10.10.7:80 cookie A check
    server server2 10.10.10.8:80 cookie A check

Upvotes: 1

Views: 3631

Answers (1)

Dmitriy Shamenko
Dmitriy Shamenko

Reputation: 39

Access list

acl folder path_dir -i /somefolder/subfolder/ /somefolder/subfolder2/

In backend you need rule

redirect scheme https if !folder !{ ssl_fc }

After that - all site has redirect to htts, but if uri contains /somefolder/subfolder/ or /somefolder/subfolder2/ it's be able to connect by http.

In nginx you need add some rules if you wanna redirect https to http

if ( $http_x_forwarded_proto = "https" ) {
rewrite ^/somefolder/subfolder2/ http://domain//somefolder/subfolder2/ permanent;
}

Upvotes: 1

Related Questions