diff --git a/templates/nginx.conf.j2 b/templates/nginx.conf.j2 index 1ad3c77..74685cb 100644 --- a/templates/nginx.conf.j2 +++ b/templates/nginx.conf.j2 @@ -27,6 +27,12 @@ http { include /etc/nginx/mime.types; default_type application/octet-stream; + # needed for weechat # + map $http_upgrade $connection_upgrade { + default upgrade; + '' close; + } + ssl_certificate {{ ssl_path }}/fullchain.pem; ssl_certificate_key {{ ssl_path }}/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; diff --git a/templates/nginx_server_block.conf.j2 b/templates/nginx_server_block.conf.j2 index 8f5f83e..84d740c 100644 --- a/templates/nginx_server_block.conf.j2 +++ b/templates/nginx_server_block.conf.j2 @@ -12,6 +12,7 @@ server{ location / { proxy_pass http://{{ targetip }}:{{ targetport }}; proxy_set_header Host $http_host; + {{ proxy_pass_blob }} } } diff --git a/vm.py b/vm.py index 9d93403..4669809 100644 --- a/vm.py +++ b/vm.py @@ -14,6 +14,10 @@ class VM: self.network = args.get("network") or "default" self.lease = self._get_lease_for_hostname() self.ip = self.lease.get("ipaddr") + self.proxy_pass_options = args.get("proxy_pass_options") + self.proxy_pass_blob = "" + if self.proxy_pass_options: + self.proxy_pass_blob = "\n".join(self.proxy_pass_options) def _get_lease_for_hostname(self): @@ -86,7 +90,8 @@ class VM: compositeName = "-".join((self.hostname, subdomain["name"].replace(".","-"))) targetport = subdomain["port"] component = template.render(targetip=self.ip, targetport=targetport, - servernames=[subdomain["name"]], comment=compositeName) + servernames=[subdomain["name"]], comment=compositeName, + proxy_pass_blob=self.proxy_pass_blob) components.append(component) elif any([type(e) == dict for e in self.subdomains]): @@ -94,7 +99,8 @@ class VM: else: compositeName = "-".join((self.hostname, self.subdomains[0].replace(".","-"))) component = template.render(targetip=self.ip, targetport=targetport, - servernames=self.subdomains, comment=compositeName) + servernames=self.subdomains, comment=compositeName, + proxy_pass_blob=self.proxy_pass_blob) components.append(component) return components