|
|
@ -98,19 +98,39 @@ The following configuration works for Apache (without HTTPS): |
|
|
|
|
|
|
|
|
|
|
|
### HAProxy |
|
|
|
### HAProxy |
|
|
|
|
|
|
|
|
|
|
|
The following configuration works for HAProxy (HTTPS only): |
|
|
|
The following configuration works for HAProxy 1.7 (HTTPS with HTTP |
|
|
|
|
|
|
|
redirection): |
|
|
|
|
|
|
|
|
|
|
|
```haproxy |
|
|
|
```haproxy |
|
|
|
frontend https |
|
|
|
frontend https |
|
|
|
bind $server_public_ip$:443 ssl crt /etc/haproxy/ssl/$server_ssl_keys$.pem |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Let Libresonic handle all requests under /libresonic |
|
|
|
# Make sure that we are in HTTP mode so that we can rewrite headers |
|
|
|
acl url_libresonic path_beg -i /libresonic |
|
|
|
mode http |
|
|
|
use_backend libresonic-backend if url_libresonic |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Change default backend to libresonic backend if you don't have a web backend |
|
|
|
# Listen on the HTTPS and HTTP ports |
|
|
|
default_backend web-backend |
|
|
|
bind :80 |
|
|
|
|
|
|
|
bind :443 ssl crt /etc/haproxy/cert_key.pem |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Some useful headers |
|
|
|
|
|
|
|
option httpclose |
|
|
|
|
|
|
|
option forwardfor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# HTTP: Redirect insecure requests to HTTPS |
|
|
|
|
|
|
|
http-request redirect scheme https if !{ ssl_fc } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# HTTPS: Forward requests to the Libresonic backend |
|
|
|
|
|
|
|
acl is_libresonic path_beg -i /libresonic |
|
|
|
|
|
|
|
use_backend libresonic-backend if is_libresonic |
|
|
|
|
|
|
|
|
|
|
|
backend libresonic-backend |
|
|
|
backend libresonic-backend |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Make sure that we are in HTTP mode so that we can rewrite headers |
|
|
|
|
|
|
|
mode http |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Rewrite all redirects to use HTTPS, similar to what Nginx does in the |
|
|
|
|
|
|
|
# proxy_redirect directive. |
|
|
|
|
|
|
|
http-response replace-value Location ^http://(.*)$ https://\1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Forward requests to Libresonic running on localhost on port 4040 |
|
|
|
server libresonic 127.0.0.1:4040 check |
|
|
|
server libresonic 127.0.0.1:4040 check |
|
|
|
``` |
|
|
|
``` |
|
|
|