Ich versuche, einen Test-Haproxy-Server einzurichten, der zwei grundlegende Bereiche abdeckt. Automatische Umleitung zu https, wenn der Benutzer http verwendet, jedoch nur, wenn ein bestimmter URL-Teil nicht vorhanden ist.
Wenn ein Benutzer beispielsweise zu http://www.test.com wechselt , wird er zu https://www.test.com weitergeleitet . Wenn der Benutzer jedoch zu https://www.test.com/blog oder http://www.test.com/blog wechselt , wird er zu http://www.test.com/blog weitergeleitet .
Dies ist mein aktueller Test haproxy.cfg. Ich verwende Haproxy 1.5-dev17
Jede Hilfe dabei wird sehr geschätzt.
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 15000
user haproxy
group haproxy
defaults
log global
mode http
option httplog
option dontlognull
option abortonclose
option http-server-close
option redispatch
retries 3
timeout queue 600s
timeout connect 9s
timeout client 60s
timeout server 60s
balance roundrobin
# Set up application listeners here.
frontend incoming
bind *:80 name http
acl has_blog_uri path /blog /blog/
redirect scheme https if !has_blog_uri !{ ssl_fc }
bind *:443 ssl crt /etc/haproxy/test.pem
use_backend blog_app if has_blog_uri
default_backend rails_app
backend rails_app
option httpchk GET /app_health
# server app1 10.1.1.1:8080 weight 1 check
server app2 10.1.1.2:8080 weight 1 check
backend blog_app
option httpchk GET /blog/check.txt
server blog 10.1.1.3:8080 check
Antworten:
Lassen Sie mich einige Dinge vorschlagen:
redirect location <absolute_url> if <conditions>
path_beg -i /blog
Hier sind meine Änderungsvorschläge für den
incoming
Teil Ihrer Konfiguration, basierend auf diesen Kommentaren. Dies sollte http://www.test.com zu https://www.test.com umleiten UND schlägt fehl, wenn ein Versuch zu https://www.test.com/blog unternommen wird (Sie könnten dort eine Seite mit platzieren ein Linkvorschlag für den Benutzer).Hoffe das hilft.
quelle