Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/guysoft/OctoPi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGina Häußge <gina@octoprint.org>2021-06-29 16:42:17 +0300
committerGina Häußge <gina@octoprint.org>2021-06-29 16:42:17 +0300
commit8c9bd970e93064bfe49aae1e9fa72c112d4738ae (patch)
treea80f873b1a3c60a00fe95d006edee74f8188a33b
parent3595898c11c6bd8a017202434ba5c9651e37dea2 (diff)
🐛 Add haproxy.cfg for 2.x versions
Build will check which one is installed and only enable the correct one. See also #711
-rw-r--r--src/modules/octopi/filesystem/root/etc/haproxy/haproxy.1.x.cfg (renamed from src/modules/octopi/filesystem/root/etc/haproxy/haproxy.cfg)0
-rw-r--r--src/modules/octopi/filesystem/root/etc/haproxy/haproxy.2.x.cfg49
-rwxr-xr-xsrc/modules/octopi/start_chroot_script9
3 files changed, 58 insertions, 0 deletions
diff --git a/src/modules/octopi/filesystem/root/etc/haproxy/haproxy.cfg b/src/modules/octopi/filesystem/root/etc/haproxy/haproxy.1.x.cfg
index 443dd00..443dd00 100644
--- a/src/modules/octopi/filesystem/root/etc/haproxy/haproxy.cfg
+++ b/src/modules/octopi/filesystem/root/etc/haproxy/haproxy.1.x.cfg
diff --git a/src/modules/octopi/filesystem/root/etc/haproxy/haproxy.2.x.cfg b/src/modules/octopi/filesystem/root/etc/haproxy/haproxy.2.x.cfg
new file mode 100644
index 0000000..8ef4d16
--- /dev/null
+++ b/src/modules/octopi/filesystem/root/etc/haproxy/haproxy.2.x.cfg
@@ -0,0 +1,49 @@
+global
+ maxconn 4096
+ user haproxy
+ group haproxy
+ log /dev/log local1 debug
+ tune.ssl.default-dh-param 2048
+
+defaults
+ log global
+ mode http
+ compression algo gzip
+ option httplog
+ option dontlognull
+ retries 3
+ option redispatch
+ option http-server-close
+ option forwardfor
+ maxconn 2000
+ timeout connect 5s
+ timeout client 15min
+ timeout server 15min
+
+frontend public
+ bind :::80 v4v6
+ bind :::443 v4v6 ssl crt /etc/ssl/snakeoil.pem
+ option forwardfor except 127.0.0.1
+ use_backend webcam if { path_beg /webcam/ }
+ use_backend webcam_hls if { path_beg /hls/ }
+ use_backend webcam_hls if { path_beg /jpeg/ }
+ default_backend octoprint
+
+backend octoprint
+ acl needs_scheme req.hdr_cnt(X-Scheme) eq 0
+
+ http-request replace-path ^([^\ :]*)\ /(.*) \1\ /\2
+ http-request add-header X-Scheme https if needs_scheme { ssl_fc }
+ http-request add-header X-Scheme http if needs_scheme !{ ssl_fc }
+ option forwardfor
+ server octoprint1 127.0.0.1:5000
+ errorfile 503 /etc/haproxy/errors/503-no-octoprint.http
+
+backend webcam
+ http-request replace-path /webcam/(.*) /\1
+ server webcam1 127.0.0.1:8080
+ errorfile 503 /etc/haproxy/errors/503-no-webcam.http
+
+backend webcam_hls
+ server webcam_hls_1 127.0.0.1:28126
+ errorfile 503 /etc/haproxy/errors/503-no-webcam-hls.http
diff --git a/src/modules/octopi/start_chroot_script b/src/modules/octopi/start_chroot_script
index 38d3f69..1b905a8 100755
--- a/src/modules/octopi/start_chroot_script
+++ b/src/modules/octopi/start_chroot_script
@@ -227,6 +227,15 @@ fi
if [ "$OCTOPI_INCLUDE_HAPROXY" == "yes" ]
then
systemctl_if_exists enable gencert.service
+
+ haproxy_version=$(dpkg -s haproxy | grep '^Version:' | awk '{print $2}')
+ if [[ $haproxy_version = 2.* ]]; then
+ mv /etc/haproxy/haproxy.2.x.cfg /etc/haproxy/haproxy.cfg
+ rm /etc/haproxy/haproxy.1.x.cfg
+ else
+ mv /etc/haproxy/haproxy.1.x.cfg /etc/haproxy/haproxy.cfg
+ rm /etc/haproxy/haproxy.2.x.cfg
+ fi
else
# let's remove the configs for system services we don't need
rm /etc/systemd/system/gencert.service