From a856d02defc67c82ed1cad536292a7b517876af2 Mon Sep 17 00:00:00 2001 From: paukstelis Date: Wed, 25 May 2022 17:35:21 -0400 Subject: [PATCH] add haproxy1.x versions --- haproxy.basic => haproxy2x.basic | 3 +-- haxproxy1x.basic | 31 ++++++++++++++++++++++++++ octoprint_deploy.sh | 37 +++++++++++++++++++++----------- 3 files changed, 57 insertions(+), 14 deletions(-) rename haproxy.basic => haproxy2x.basic (93%) create mode 100644 haxproxy1x.basic diff --git a/haproxy.basic b/haproxy2x.basic similarity index 93% rename from haproxy.basic rename to haproxy2x.basic index 6e92d93..37ca641 100644 --- a/haproxy.basic +++ b/haproxy2x.basic @@ -1,6 +1,6 @@ #Basic setup from: #https://community.octoprint.org/t/setting-up-octoprint-on-a-computer-running-fedora-centos-almalinux-or-rockylinux/37137/2 -[/etc/haproxy/haproxy.cfg] + global maxconn 4000 user haproxy @@ -31,6 +31,5 @@ frontend public default_backend octoprint backend octoprint - reqrep ^([^\ :]*)\ /(.*) \1\ /\2 option forwardfor server octoprint1 127.0.0.1:5000 diff --git a/haxproxy1x.basic b/haxproxy1x.basic new file mode 100644 index 0000000..7aa8310 --- /dev/null +++ b/haxproxy1x.basic @@ -0,0 +1,31 @@ +global + maxconn 4096 + user haproxy + group haproxy + daemon + log 127.0.0.1 local0 debug + +defaults + log global + mode http + 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 + option forwardfor except 127.0.0.1 + #use_backend webcam if { path_beg /webcam/ } + default_backend octoprint + +backend octoprint + reqrep ^([^\ :]*)\ /(.*) \1\ /\2 + option forwardfor + server octoprint1 127.0.0.1:5000 diff --git a/octoprint_deploy.sh b/octoprint_deploy.sh index a660884..e2fee7b 100755 --- a/octoprint_deploy.sh +++ b/octoprint_deploy.sh @@ -245,10 +245,10 @@ new_instance () { cp -rp $BFOLD $OCTOCONFIG/.$INSTANCE #Do config.yaml modifications here if needed.. - cat $BFOLD/config.yaml | sed -e "s/INSTANCE/$INSTANCE/" > $OCTOCONFIG/.$INSTANCE/config.yaml + cat $BFOLD/config.yaml | sed -e "s/INSTANCE/$INSTANCE/" > $OCTOCONFIG/.$INSTANCE/config.yaml #uniquify instances sed -i "s/upnpUuid: .*/upnpUuid: $(uuidgen)/" $OCTOCONFIG/.$INSTANCE/config.yaml - + if [[ -n $CAM || -n $USBCAM ]]; then write_camera fi @@ -268,22 +268,29 @@ new_instance () { fi #if we are on octopi, add in haproxy entry + #get haproxy version + HAversion=$(haproxy -v | sed -n 's/^.*version \([0-9]\).*/\1/p') if [ $INSTALL -gt 1 ]; then #find frontend line, do insert sed -i "/option forwardfor except 127.0.0.1/a\ use_backend $INSTANCE if { path_beg /$INSTANCE/ }" /etc/haproxy/haproxy.cfg - #add backend info, bracket with comments so we can remove later if needed. This all needs work, just slapping stuff in for now echo "#$INSTANCE start" >> /etc/haproxy/haproxy.cfg echo "backend $INSTANCE" >> /etc/haproxy/haproxy.cfg - echo " reqrep ^([^\ :]*)\ /$INSTANCE/(.*) \1\ /\2" >> /etc/haproxy/haproxy.cfg - echo " option forwardfor" >> /etc/haproxy/haproxy.cfg - echo " server octoprint1 127.0.0.1:$PORT" >> /etc/haproxy/haproxy.cfg - echo " acl needs_scheme req.hdr_cnt(X-Scheme) eq 0" >> /etc/haproxy/haproxy.cfg - echo " reqadd X-Scheme:\ https if needs_scheme { ssl_fc }" >> /etc/haproxy/haproxy.cfg - echo " reqadd X-Scheme:\ http if needs_scheme !{ ssl_fc }" >> /etc/haproxy/haproxy.cfg - echo " reqadd X-Script-Name:\ /$INSTANCE" >> /etc/haproxy/haproxy.cfg + if [ $HAversion -gt 1 ]; then + echo " option forwardfor" >> /etc/haproxy/haproxy.cfg + echo " server octoprint1 127.0.0.1:$PORT" >> /etc/haproxy/haproxy.cfg + else + echo " reqrep ^([^\ :]*)\ /$INSTANCE/(.*) \1\ /\2" >> /etc/haproxy/haproxy.cfg + echo " option forwardfor" >> /etc/haproxy/haproxy.cfg + echo " server octoprint1 127.0.0.1:$PORT" >> /etc/haproxy/haproxy.cfg + echo " acl needs_scheme req.hdr_cnt(X-Scheme) eq 0" >> /etc/haproxy/haproxy.cfg + echo " reqadd X-Scheme:\ https if needs_scheme { ssl_fc }" >> /etc/haproxy/haproxy.cfg + echo " reqadd X-Scheme:\ http if needs_scheme !{ ssl_fc }" >> /etc/haproxy/haproxy.cfg + echo " reqadd X-Script-Name:\ /$INSTANCE" >> /etc/haproxy/haproxy.cfg + fi echo "#$INSTANCE stop" >> /etc/haproxy/haproxy.cfg #restart haproxy sudo systemctl restart haproxy.service + fi fi main_menu @@ -649,11 +656,17 @@ prepare () { sudo -u $user cp -p $SCRIPTDIR/config.basic /home/$user/.octoprint/config.yaml echo 'Updating haproxy' systemctl stop haproxy + #get haproxy version + HAversion=$(haproxy -v | sed -n 's/^.*version \([0-9]\).*/\1/p') mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.orig - cp $SCRIPTDIR/haproxy.basic /etc/haproxy/haproxy.cfg + if [ $HAversion -gt 1 ]; then + cp $SCRIPTDIR/haproxy2.basic /etc/haproxy/haproxy.cfg + else + cp $SCRIPTDIR/haproxy1.basic /etc/haproxy/haproxy.cfg + fi systemctl start haproxy systemctl enable haproxy - + echo echo echo