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:
authorGuy Sheffer <guysoft@gmail.com>2021-06-30 12:08:40 +0300
committerGitHub <noreply@github.com>2021-06-30 12:08:40 +0300
commit0c6a3cf599a9abe7615be0f4f0ae81e4040aaf34 (patch)
tree0b5c722eabf97c33ed65f960de07bb126f3cd6eb
parent87a80443c316feec4891dcfcfa8a23bb4f337c65 (diff)
parent8c9bd970e93064bfe49aae1e9fa72c112d4738ae (diff)
Merge pull request #742 from foosel/fix-haproxy
🐛 Add haproxy.cfg for 2.x versions
-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