diff --git a/CHANGELOG.md b/CHANGELOG.md index b145e2f..079be38 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### v3.22.0 - [Unreleased] +### v3.21.2 - 2024-06-11 + +#### Added + +- "$http3" variable in access_logs + +#### Fixed + +- $host variable for fastcgi_params et proxy_params + ### v3.21.1 - 2024-06-11 #### Fixed diff --git a/install b/install index 6333c9f..ba22a1a 100755 --- a/install +++ b/install @@ -9,7 +9,7 @@ # ------------------------------------------------------------------------- # wget -qO wo wops.cc && sudo -E bash wo # ------------------------------------------------------------------------- -# Version 3.21.1 - 2024-06-11 +# Version 3.21.2 - 2024-06-11 # ------------------------------------------------------------------------- # CONTENTS diff --git a/setup.py b/setup.py index e5543af..7543236 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ if os.geteuid() == 0: os.makedirs('/var/lib/wo/tmp/') setup(name='wordops', - version='3.21.1', + version='3.21.2', description='An essential toolset that eases server administration', long_description=LONG, long_description_content_type='text/markdown', diff --git a/wo/cli/plugins/stack_migrate.py b/wo/cli/plugins/stack_migrate.py index 91b32fe..1054f58 100644 --- a/wo/cli/plugins/stack_migrate.py +++ b/wo/cli/plugins/stack_migrate.py @@ -11,6 +11,7 @@ from wo.core.shellexec import WOShellExec from wo.core.variables import WOVar from wo.cli.plugins.sitedb import (getAllsites) from wo.core.template import WOTemplate +from wo.core.domainvalidate import WODomain class WOStackMigrateController(CementBaseController): @@ -118,13 +119,23 @@ class WOStackMigrateController(CementBaseController): for site in allsites: if not site: pass - if (os.path.exists(f'/var/www/{site.sitename}/conf/nginx/ssl.conf') and - not os.path.islink(f'/var/www/{site.sitename}/conf/nginx/ssl.conf')): - data = dict(ssl_live_path=WOVar.wo_ssl_live, - domain=site.sitename, quic=True) - WOTemplate.deploy( - self, f'/var/www/{site.sitename}/conf/nginx/ssl.conf', - 'ssl.mustache', data, overwrite=True) + if os.path.exists(f'/var/www/{site.sitename}/conf/nginx/ssl.conf'): + if not os.path.islink(f'/var/www/{site.sitename}/conf/nginx/ssl.conf'): + data = dict(ssl_live_path=WOVar.wo_ssl_live, + domain=site.sitename, quic=True) + WOTemplate.deploy( + self, f'/var/www/{site.sitename}/conf/nginx/ssl.conf', + 'ssl.mustache', data, overwrite=True) + else: + (_, wo_root_domain) = WODomain.getlevel( + self, site.sitename) + if (site.sitename != wo_root_domain and + os.path.exists(f'/etc/letsencrypt/shared/{wo_root_domain}.conf')): + data = dict(ssl_live_path=WOVar.wo_ssl_live, + domain=wo_root_domain, quic=True) + WOTemplate.deploy( + self, f'/etc/letsencrypt/shared/{wo_root_domain}.conf', + 'ssl.mustache', data, overwrite=True) post_pref(self, WOVar.wo_nginx, []) @expose(hide=True) diff --git a/wo/cli/plugins/stack_pref.py b/wo/cli/plugins/stack_pref.py index 4d37d01..624c9be 100644 --- a/wo/cli/plugins/stack_pref.py +++ b/wo/cli/plugins/stack_pref.py @@ -149,6 +149,19 @@ def post_pref(self, apt_packages, packages, upgrade=False): encoding='utf-8', mode='a') as wo_nginx: wo_nginx.write('fastcgi_param \tSCRIPT_FILENAME ' '\t$request_filename;\n') + if not WOFileUtils.grep(self, '/etc/nginx/fastcgi_params', + 'HTTP_HOST'): + WOFileUtils.textappend(self, '/etc/nginx/fastcgi_params', + '# Fix for HTTP/3 QUIC HTTP_HOST\n' + 'fastcgi_param\tHTTP_HOST\t$host;\n') + if not WOFileUtils.grep(self, '/etc/nginx/proxy_params', + 'X-Forwarded-Host'): + WOFileUtils.textappend(self, '/etc/nginx/proxy_params', + 'proxy_set_header X-Forwarded-Host $host;\n') + if not WOFileUtils.grep(self, '/etc/nginx/proxy_params', + 'X-Forwarded-Port'): + WOFileUtils.textappend(self, '/etc/nginx/proxy_params', + 'proxy_set_header X-Forwarded-Port $server_port;\n') try: data = dict(php="9000", debug="9001", php7="9070", debug7="9170", @@ -245,7 +258,7 @@ def post_pref(self, apt_packages, packages, upgrade=False): "$upstream_response_time " "$srcache_fetch_status " "[$time_local] '\n" - "'$http_host \"$request\" $status" + "'$host \"$request\" $status" " $body_bytes_sent '\n" "'\"$http_referer\" " "\"$http_user_agent\"';\n") @@ -884,7 +897,7 @@ def post_pref(self, apt_packages, packages, upgrade=False): "# Log format Settings\n" "log_format rt_cache_redis '$remote_addr " "$upstream_response_time $srcache_fetch_status " - "[$time_local] '\n '$http_host \"$request\" " + "[$time_local] '\n '$host \"$request\" " "$status $body_bytes_sent '\n'\"$http_referer\" " "\"$http_user_agent\"';\n") # set redis.conf parameter diff --git a/wo/cli/templates/nginx-core.mustache b/wo/cli/templates/nginx-core.mustache index c7b6686..2ff85ac 100644 --- a/wo/cli/templates/nginx-core.mustache +++ b/wo/cli/templates/nginx-core.mustache @@ -94,8 +94,8 @@ http { # Log format Settings log_format rt_cache '$remote_addr $upstream_response_time $upstream_cache_status [$time_local] ' - '$http_host "$request" $status $body_bytes_sent ' - '"$http_referer" "$http_user_agent" "$server_protocol"'; + '$host "$request" $status $body_bytes_sent ' + '"$http_referer" "$http_user_agent" "$server_protocol" "$http3"'; ## # Virtual Host Configs diff --git a/wo/cli/templates/wo-plus.mustache b/wo/cli/templates/wo-plus.mustache index 7dfbb9a..872efdb 100644 --- a/wo/cli/templates/wo-plus.mustache +++ b/wo/cli/templates/wo-plus.mustache @@ -48,8 +48,8 @@ error_log /var/log/nginx/error.log; # Log format Settings log_format rt_cache '$remote_addr $upstream_response_time $upstream_cache_status [$time_local] ' -'$http_host "$request" $status $body_bytes_sent ' -'"$http_referer" "$http_user_agent" "$request_body"'; +'$host "$request" $status $body_bytes_sent ' +'"$http_referer" "$http_user_agent" "$request_body" "$http3"'; ## # Gzip Settings diff --git a/wo/core/variables.py b/wo/core/variables.py index 7c7e86a..183f2cc 100644 --- a/wo/core/variables.py +++ b/wo/core/variables.py @@ -15,7 +15,7 @@ class WOVar(): """Intialization of core variables""" # WordOps version - wo_version = "3.21.1" + wo_version = "3.21.2" # WordOps packages versions wo_adminer = "4.8.1" wo_phpmyadmin = "5.2.0"