{% if rewrite %}
RewriteEngine On
RewriteRule ^{{remotepath}}$ %{REQUEST_URI}/ [R=301]

{% endif %}
{% if header_scheme %}
RequestHeader set X-Forwarded-Scheme https early
RequestHeader set X-Scheme https early
RequestHeader set X-Forwarded-Proto https early

{% endif %}
{% if header_expect %}
RequestHeader unset Expect early

{% endif %}
{% if keephost %}
ProxyPreserveHost On
{% endif %}

{% if balancer_name is defined %}
SSLProxyEngine On

{% if targettype is defined and targettype == "openshift" %}
  SSLProxyVerify require
  SSLProxyCheckPeerName Off
  SSLProxyCACertificateFile "/etc/haproxy/os-master.pem"
{% endif %}

<Proxy "balancer://{{balancer_name}}-websocket">
  {% for member in balancer_members %}
    {% if http_not_https_yes_this_is_insecure_and_i_feel_bad %}
    {% if remotepath is defined %}
    BalancerMember "ws://{{ member }}{{ remotepath }}
    {% else %}
    BalancerMember "ws://{{ member }}"
    {% endif %}
    {% else %}
    {% if remotepath is defined %}
    BalancerMember "wss://{{ member }}{{ remotepath }}
    {% else %}
    BalancerMember "wss://{{ member }}"
    {% endif %}
    {% endif %}
  {% endfor %}
</Proxy>

RewriteEngine on
RewriteCond %{HTTP:Upgrade} ^WebSocket$ [NC]
RewriteCond %{HTTP:Connection} Upgrade [NC]
{% if remotepath is defined %}
RewriteCond %{REQUEST_URI} ^{{ remotepath }}/(.)*
{% endif %}
RewriteRule .* "balancer://{{ balancer_name }}-websocket%{REQUEST_URI}" [P]

<Proxy "balancer://{{balancer_name}}">
  {% for member in balancer_members %}
    {% if http_not_https_yes_this_is_insecure_and_i_feel_bad %}
    BalancerMember "http://{{ member }}"
    {% else %}
    BalancerMember "https://{{ member }}"
    {% endif %}
  {% endfor %}
</Proxy>
ProxyPass {{ localpath }} "balancer://{{balancer_name}}{{remotepath}}"
ProxyPassReverse {{ localpath }} "balancer://{{balancer_name}}{{remotepath}}"
{% else %}
ProxyPass {{ localpath }} {{ proxyurl }}{{remotepath}}
ProxyPassReverse {{ localpath }} {{ proxyurl }}{{remotepath}}
{% endif %}
