diff --git a/v2-http3/CakePHP/CakePHP 5 b/v2-http3/CakePHP/CakePHP 5 new file mode 100755 index 0000000..d336055 --- /dev/null +++ b/v2-http3/CakePHP/CakePHP 5 @@ -0,0 +1,88 @@ +#{"rootDirectory":"webroot","phpVersion":"8.2","varnishCacheSettings":{"cacheLifetime":"604800","controller":"generic","excludes":["^\/admin\/"],"excludedParams":["__SID","noCache"]}} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location / { + {{varnish_proxy_pass}} + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header X-Varnish; + proxy_redirect off; + proxy_max_temp_file_size 0; + proxy_connect_timeout 720; + proxy_send_timeout 720; + proxy_read_timeout 720; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} + +server { + listen 8080; + listen [::]:8080; + {{server_name}} + {{root}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS "on"; + fastcgi_param SERVER_PORT 443; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/CodeIgniter/CodeIgniter 4 b/v2-http3/CodeIgniter/CodeIgniter 4 new file mode 100755 index 0000000..143884f --- /dev/null +++ b/v2-http3/CodeIgniter/CodeIgniter 4 @@ -0,0 +1,87 @@ +#{"rootDirectory":"public","phpVersion":"8.2","varnishCacheSettings":{"cacheLifetime":"604800","controller":"generic","excludes":["^\/admin\/"],"excludedParams":["__SID","noCache"]}} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location / { + {{varnish_proxy_pass}} + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header X-Varnish; + proxy_redirect off; + proxy_max_temp_file_size 0; + proxy_connect_timeout 720; + proxy_send_timeout 720; + proxy_read_timeout 720; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} + +server { + listen 8080; + listen [::]:8080; + {{server_name}} + {{root}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS "on"; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Contao/Contao 4 b/v2-http3/Contao/Contao 4 new file mode 100755 index 0000000..5afbfaf --- /dev/null +++ b/v2-http3/Contao/Contao 4 @@ -0,0 +1,76 @@ +#{"rootDirectory":"public","phpVersion":"8.0"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + include /etc/nginx/global_headers; + + location / { + index index.php; + try_files $uri @rewriteapp; + } + + location @rewriteapp { + rewrite ^(.*)$ /index.php/$1 last; + } + + location ~ ^/(app|app_dev|config|index|preview|install|contao-manager\.phar)\.php(/|$) { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_split_path_info ^(.+\.php)(/.*)$; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location = /favicon.ico { + log_not_found off; + access_log off; + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + try_files $uri /index.php$is_args$args; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + try_files $uri $uri/ /index.php$is_args$args; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Drupal/Drupal 10 b/v2-http3/Drupal/Drupal 10 new file mode 100755 index 0000000..b412174 --- /dev/null +++ b/v2-http3/Drupal/Drupal 10 @@ -0,0 +1,98 @@ +#{"rootDirectory":"web","phpVersion":"8.2"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + rewrite ^/core/authorize.php/core/authorize.php(.*)$ /core/authorize.php$1; + + location ~ (^|/)\. { + return 403; + } + + {{settings}} + + include /etc/nginx/global_headers; + + location ~ ^/sites/.*/files/styles/ { + try_files $uri @rewrite; + } + + location / { + try_files $uri /index.php?$query_string; + } + + location @rewrite { + rewrite ^ /index.php; + } + + location ~ ^(/[a-z\-]+)?/system/files/ { # For Drupal >= 7 + try_files $uri /index.php?$query_string; + } + + if ($request_uri ~* "^(.*/)index\.php/(.*)") { + return 307 $1$2; + } + + index index.php index.html; + + location ~ ^/update.php { + fastcgi_split_path_info ^(.+?\.php)(|/.*)$; + try_files $fastcgi_script_name =404; + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|ico|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + try_files $uri @rewrite; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} diff --git a/v2-http3/Drupal/Drupal 9 b/v2-http3/Drupal/Drupal 9 new file mode 100755 index 0000000..0f3eac0 --- /dev/null +++ b/v2-http3/Drupal/Drupal 9 @@ -0,0 +1,97 @@ +#{"rootDirectory":"web","phpVersion":"8.1"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + rewrite ^/core/authorize.php/core/authorize.php(.*)$ /core/authorize.php$1; + + location ~ (^|/)\. { + return 403; + } + + {{settings}} + + include /etc/nginx/global_headers; + + location ~ ^/sites/.*/files/styles/ { + try_files $uri @rewrite; + } + + location / { + try_files $uri /index.php?$query_string; + } + + location @rewrite { + rewrite ^/(.*)$ /index.php?q=$1; + } + + location ~ ^(/[a-z\-]+)?/system/files/ { # For Drupal >= 7 + try_files $uri /index.php?$query_string; + } + + if ($request_uri ~* "^(.*/)index\.php/(.*)") { + return 307 $1$2; + } + + index index.php index.html; + + location ~ ^/update.php { + fastcgi_split_path_info ^(.+?\.php)(|/.*)$; + try_files $fastcgi_script_name =404; + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|ico|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/FuelPHP/FuelPHP 1.8 b/v2-http3/FuelPHP/FuelPHP 1.8 new file mode 100755 index 0000000..5547032 --- /dev/null +++ b/v2-http3/FuelPHP/FuelPHP 1.8 @@ -0,0 +1,58 @@ +#{"rootDirectory":"public","phpVersion":"7.2"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Generic/Generic b/v2-http3/Generic/Generic new file mode 100644 index 0000000..a43c3b1 --- /dev/null +++ b/v2-http3/Generic/Generic @@ -0,0 +1,88 @@ +#{"rootDirectory":"","phpVersion":"8.2","varnishCacheSettings":{"cacheLifetime":"604800","controller":"generic","excludes":["^\/admin\/"],"excludedParams":["__SID","noCache"]}} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location / { + {{varnish_proxy_pass}} + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header X-Varnish; + proxy_redirect off; + proxy_max_temp_file_size 0; + proxy_connect_timeout 720; + proxy_send_timeout 720; + proxy_read_timeout 720; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} + +server { + listen 8080; + listen [::]:8080; + {{server_name}} + {{root}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS "on"; + fastcgi_param SERVER_PORT 443; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Joomla/Joomla 4 b/v2-http3/Joomla/Joomla 4 new file mode 100755 index 0000000..4ee8e7f --- /dev/null +++ b/v2-http3/Joomla/Joomla 4 @@ -0,0 +1,58 @@ +#{"rootDirectory":"","phpVersion":"8.0"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Laminas/Laminas b/v2-http3/Laminas/Laminas new file mode 100755 index 0000000..83fe164 --- /dev/null +++ b/v2-http3/Laminas/Laminas @@ -0,0 +1,58 @@ +#{"rootDirectory":"public","phpVersion":"8.2"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Laravel/Laravel 10 b/v2-http3/Laravel/Laravel 10 new file mode 100755 index 0000000..3e1399e --- /dev/null +++ b/v2-http3/Laravel/Laravel 10 @@ -0,0 +1,94 @@ +#{"rootDirectory":"public","phpVersion":"8.2","varnishCacheSettings":{"cacheLifetime":"604800","controller":"generic","excludes":["^\/admin\/"],"excludedParams":["__SID","noCache"]}} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location / { + {{varnish_proxy_pass}} + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header X-Varnish; + proxy_redirect off; + proxy_max_temp_file_size 0; + proxy_connect_timeout 720; + proxy_send_timeout 720; + proxy_read_timeout 720; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} + +server { + listen 8080; + listen [::]:8080; + {{server_name}} + {{root}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS "on"; + fastcgi_param SERVER_PORT 443; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ { + add_header Access-Control-Allow-Origin "*"; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Laravel/Laravel 11 b/v2-http3/Laravel/Laravel 11 new file mode 100755 index 0000000..637ef57 --- /dev/null +++ b/v2-http3/Laravel/Laravel 11 @@ -0,0 +1,94 @@ +#{"rootDirectory":"public","phpVersion":"8.2","varnishCacheSettings":{"cacheLifetime":"604800","controller":"generic","excludes":["^\/admin\/"],"excludedParams":["__SID","noCache"]}} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + include /etc/nginx/global_headers; + + location / { + {{varnish_proxy_pass}} + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header X-Varnish; + proxy_redirect off; + proxy_max_temp_file_size 0; + proxy_connect_timeout 720; + proxy_send_timeout 720; + proxy_read_timeout 720; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} + +server { + listen 8080; + listen [::]:8080; + {{server_name}} + {{root}} + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS "on"; + fastcgi_param SERVER_PORT 443; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ { + add_header Access-Control-Allow-Origin "*"; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Magento/Magento 2 b/v2-http3/Magento/Magento 2 new file mode 100755 index 0000000..c4ffcfe --- /dev/null +++ b/v2-http3/Magento/Magento 2 @@ -0,0 +1,80 @@ +#{"rootDirectory":"pub","phpVersion":"8.2"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location ~/media/ { + add_header Access-Control-Allow-Origin "*"; + expires max; + try_files $uri $uri/ /get.php$is_args$args; + } + + location /static/ { + add_header Access-Control-Allow-Origin "*"; + location ~ ^/static/version { + rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last; + } + location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2|html|json)$ { + add_header Access-Control-Allow-Origin "*"; + expires max; + access_log off; + if (!-f $request_filename) { + rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last; + rewrite ^/static/(.*)$ /static.php?resource=$1 last; + } + } + } + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Matomo/Matomo 4 b/v2-http3/Matomo/Matomo 4 new file mode 100755 index 0000000..4ee8e7f --- /dev/null +++ b/v2-http3/Matomo/Matomo 4 @@ -0,0 +1,58 @@ +#{"rootDirectory":"","phpVersion":"8.0"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Mautic/Mautic 5 b/v2-http3/Mautic/Mautic 5 new file mode 100755 index 0000000..df85f05 --- /dev/null +++ b/v2-http3/Mautic/Mautic 5 @@ -0,0 +1,74 @@ +#{"rootDirectory":"","phpVersion":"8.0"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location ~ ^/(config|tmp|core|lang) { + return 403; + } + + location ~ /.ht { + return 403; + } + + location ~ (.*).gif { + try_files $uri /index.php?$args; + } + + location ~ (.*).js { + try_files $uri /index.php?$args; + } + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Moodle/Moodle 4 b/v2-http3/Moodle/Moodle 4 new file mode 100755 index 0000000..822d490 --- /dev/null +++ b/v2-http3/Moodle/Moodle 4 @@ -0,0 +1,60 @@ +#{"rootDirectory":"","phpVersion":"8.0"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + #if ($scheme != "https") { + # rewrite ^ https://$host$uri permanent; + #} + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + include /etc/nginx/global_headers; + + rewrite ^/(.*.php)(/)(.*)$ /$1?file=/$3 last; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Neos/Neos 8 b/v2-http3/Neos/Neos 8 new file mode 100755 index 0000000..07e7bf9 --- /dev/null +++ b/v2-http3/Neos/Neos 8 @@ -0,0 +1,61 @@ +#{"rootDirectory":"Web","phpVersion":"8.2"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_param FLOW_CONTEXT Development; + #fastcgi_param FLOW_CONTEXT Production; + fastcgi_param FLOW_REWRITEURLS 1; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Nextcloud/Nextcloud 27 b/v2-http3/Nextcloud/Nextcloud 27 new file mode 100644 index 0000000..fb9dd34 --- /dev/null +++ b/v2-http3/Nextcloud/Nextcloud 27 @@ -0,0 +1,124 @@ +#{"rootDirectory":"","phpVersion":"8.2"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + # set max upload size and increase upload timeout: + client_max_body_size 512M; + client_body_timeout 300s; + fastcgi_buffers 64 4K; + + # Enable gzip but do not remove ETag headers + gzip on; + gzip_vary on; + gzip_comp_level 4; + gzip_min_length 256; + gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; + gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; + + # Remove X-Powered-By, which is an information leak + fastcgi_hide_header X-Powered-By; + + add_header Permissions-Policy "geolocation=(),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(self),payment=()"; + add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload;"; + + location ^~ /.well-known { + # The rules in this block are an adaptation of the rules + # in `.htaccess` that concern `/.well-known`. + location = /.well-known/carddav { return 301 /remote.php/dav/; } + location = /.well-known/caldav { return 301 /remote.php/dav/; } + location /.well-known/acme-challenge { try_files $uri $uri/ =404; } + location /.well-known/pki-validation { try_files $uri $uri/ =404; } + # Let Nextcloud's API for `/.well-known` URIs handle all other + # requests by passing them to the front-end controller. + return 301 /index.php$request_uri; + } + + # Remove "#" to enable the push service. Please note that this must be set up before activation. + #location /push/ { + # proxy_pass http://localhost:7867/; + # proxy_http_version 1.1; + # proxy_set_header Upgrade $http_upgrade; + # proxy_set_header Connection "Upgrade"; + # proxy_set_header Host $host; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + #} + + {{settings}} + + location / { + rewrite ^ /index.php; + } + + location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ { + deny all; + } + + location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) { + deny all; + } + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ ^\/(?:index|setup-nextcloud|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+)\.php(?:$|\/) { + include fastcgi_params; + fastcgi_split_path_info ^(.+?\.php)(\/.*|)$; + set $path_info $fastcgi_path_info; + try_files $fastcgi_script_name =404; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $path_info; + fastcgi_param front_controller_active true; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) { + try_files $uri/ =404; + index index.php; + } + + location ~ \.(?:css|js|woff2?|svg|gif|map)$ { + try_files $uri /index.php$request_uri; + add_header Cache-Control "public, max-age=15778463"; + add_header X-Content-Type-Options nosniff; + add_header X-XSS-Protection "1; mode=block"; + add_header X-Robots-Tag none; + add_header X-Download-Options noopen; + add_header X-Permitted-Cross-Domain-Policies none; + add_header Referrer-Policy no-referrer; + # Optional: Don't log access to assets + access_log off; + } + + location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ { + try_files $uri /index.php$request_uri; + # Optional: Don't log access to other assets + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Nodejs/Nodejs b/v2-http3/Nodejs/Nodejs new file mode 100755 index 0000000..5c94e46 --- /dev/null +++ b/v2-http3/Nodejs/Nodejs @@ -0,0 +1,54 @@ +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + include /etc/nginx/global_headers; + + index index.html; + + location / { + proxy_pass http://127.0.0.1:{{app_port}}/; + proxy_http_version 1.1; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Forwarded-Server $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Host $host; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_pass_request_headers on; + proxy_max_temp_file_size 0; + proxy_connect_timeout 900; + proxy_send_timeout 900; + proxy_read_timeout 900; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } +} \ No newline at end of file diff --git a/v2-http3/PrestaShop/PrestaShop 1.7 b/v2-http3/PrestaShop/PrestaShop 1.7 new file mode 100755 index 0000000..fc153b4 --- /dev/null +++ b/v2-http3/PrestaShop/PrestaShop 1.7 @@ -0,0 +1,77 @@ +#{"rootDirectory":"","phpVersion":"7.3"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + large_client_header_buffers 4 32k; + + {{nginx_access_log}} + {{nginx_error_log}} + + #if ($scheme != "https") { + # rewrite ^ https://$host$uri permanent; + #} + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location /admin-dev/ { + try_files $uri $uri/ /admin-dev/index.php?$args; + } + + rewrite ^/(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$1$2.jpg last; + rewrite ^/(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$1$2$3.jpg last; + rewrite ^/(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg last; + rewrite ^/(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg last; + rewrite ^/(\d)(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg last; + rewrite ^/(\d)(\d)(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg last; + rewrite ^/(\d)(\d)(\d)(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg last; + rewrite ^/(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg last; + rewrite ^/c/([\w.-]+)/.+\.jpg$ /img/c/$1.jpg last; + + rewrite ^images_ie/?([^/]+)\.(gif|jpe?g|png)$ js/jquery/plugins/fancybox/images/$1.$2 last; + rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last; + rewrite ^(/install(?:-dev)?/sandbox)/.* /$1/test.php last; + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Python/Python b/v2-http3/Python/Python new file mode 100755 index 0000000..99419d0 --- /dev/null +++ b/v2-http3/Python/Python @@ -0,0 +1,72 @@ +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + include /etc/nginx/global_headers; + + index index.html; + + location /uwsgi { + include uwsgi_params; + uwsgi_read_timeout 3600; + #uwsgi_pass unix:///run/uwsgi/app/weblate/socket; + uwsgi_pass 127.0.0.1:{{app_port}}; + } + + location / { + proxy_pass http://127.0.0.1:{{app_port}}/; + proxy_http_version 1.1; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Forwarded-Server $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Host $host; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_pass_request_headers on; + proxy_max_temp_file_size 0; + proxy_connect_timeout 900; + proxy_send_timeout 900; + proxy_read_timeout 900; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log on; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/ReverseProxy/ReverseProxy b/v2-http3/ReverseProxy/ReverseProxy new file mode 100755 index 0000000..cdcc2ae --- /dev/null +++ b/v2-http3/ReverseProxy/ReverseProxy @@ -0,0 +1,61 @@ +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location @reverse_proxy { + proxy_pass {{reverse_proxy_url}}; + proxy_http_version 1.1; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Forwarded-Server $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Host $host; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_pass_request_headers on; + proxy_max_temp_file_size 0; + proxy_connect_timeout 900; + proxy_send_timeout 900; + proxy_read_timeout 900; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + {{settings}} + + include /etc/nginx/global_headers; + + add_header Cache-Control no-transform; + + index index.html; + + location ^~ /.well-known { + auth_basic off; + allow all; + try_files $uri @reverse_proxy; + } + + location / { + try_files $uri @reverse_proxy; + } +} diff --git a/v2-http3/Shopware/Shopware 6 b/v2-http3/Shopware/Shopware 6 new file mode 100755 index 0000000..fe032f2 --- /dev/null +++ b/v2-http3/Shopware/Shopware 6 @@ -0,0 +1,62 @@ +#{"rootDirectory":"public","phpVersion":"8.2"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + #location /recovery/install/ { + # try_files $uri $uri/ /recovery/install/index.php?$args; + #} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Slim/Slim 4 b/v2-http3/Slim/Slim 4 new file mode 100755 index 0000000..d597b7a --- /dev/null +++ b/v2-http3/Slim/Slim 4 @@ -0,0 +1,88 @@ +#{"rootDirectory":"public","phpVersion":"7.4","varnishCacheSettings":{"cacheLifetime":"604800","controller":"generic","excludes":["^\/admin\/"],"excludedParams":["__SID","noCache"]}} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location / { + {{varnish_proxy_pass}} + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header X-Varnish; + proxy_redirect off; + proxy_max_temp_file_size 0; + proxy_connect_timeout 720; + proxy_send_timeout 720; + proxy_read_timeout 720; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} + +server { + listen 8080; + listen [::]:8080; + {{server_name}} + {{root}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS "on"; + fastcgi_param SERVER_PORT 443; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Static/Static b/v2-http3/Static/Static new file mode 100644 index 0000000..5452bd7 --- /dev/null +++ b/v2-http3/Static/Static @@ -0,0 +1,43 @@ +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + include /etc/nginx/global_headers; + + index index.html; + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Symfony/Symfony 6 b/v2-http3/Symfony/Symfony 6 new file mode 100755 index 0000000..1f2a2e1 --- /dev/null +++ b/v2-http3/Symfony/Symfony 6 @@ -0,0 +1,88 @@ +#{"rootDirectory":"public","phpVersion":"8.2","varnishCacheSettings":{"cacheLifetime":"604800","controller":"generic","excludes":["^\/admin\/"],"excludedParams":["__SID","noCache"]}} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location / { + {{varnish_proxy_pass}} + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header X-Varnish; + proxy_redirect off; + proxy_max_temp_file_size 0; + proxy_connect_timeout 720; + proxy_send_timeout 720; + proxy_read_timeout 720; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} + +server { + listen 8080; + listen [::]:8080; + {{server_name}} + {{root}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS "on"; + fastcgi_param SERVER_PORT 443; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Symfony/Symfony 7 b/v2-http3/Symfony/Symfony 7 new file mode 100755 index 0000000..1f2a2e1 --- /dev/null +++ b/v2-http3/Symfony/Symfony 7 @@ -0,0 +1,88 @@ +#{"rootDirectory":"public","phpVersion":"8.2","varnishCacheSettings":{"cacheLifetime":"604800","controller":"generic","excludes":["^\/admin\/"],"excludedParams":["__SID","noCache"]}} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location / { + {{varnish_proxy_pass}} + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header X-Varnish; + proxy_redirect off; + proxy_max_temp_file_size 0; + proxy_connect_timeout 720; + proxy_send_timeout 720; + proxy_read_timeout 720; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} + +server { + listen 8080; + listen [::]:8080; + {{server_name}} + {{root}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS "on"; + fastcgi_param SERVER_PORT 443; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/TYPO3/TYPO3 12 b/v2-http3/TYPO3/TYPO3 12 new file mode 100755 index 0000000..865c2dd --- /dev/null +++ b/v2-http3/TYPO3/TYPO3 12 @@ -0,0 +1,62 @@ +#{"rootDirectory":"public","phpVersion":"8.2"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location /typo3/ { + try_files $uri $uri/ /typo3/index.php?$args; + } + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/WHMCS/WHMCS b/v2-http3/WHMCS/WHMCS new file mode 100644 index 0000000..cfed035 --- /dev/null +++ b/v2-http3/WHMCS/WHMCS @@ -0,0 +1,148 @@ +#{"rootDirectory":"","phpVersion":"7.4"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location / { + error_page 404 /index.php?$query_string; + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ /announcements/?(.*)$ { + rewrite ^/(.*)$ /hosting/index.php?rp=/announcements/$1; + } + + location ~ /download/?(.*)$ { + rewrite ^/(.*)$ /hosting/index.php?rp=/download$1; + } + + location ~ /knowledgebase/?(.*)$ { + rewrite ^/(.*)$ /hosting/index.php?rp=/knowledgebase/$1; + } + + location ~ /store/ssl-certificates/?(.*)$ { + rewrite ^/(.*)$ /hosting/index.php?rp=/store/ssl-certificates/$1; + } + + location ~ /store/sitelock/?(.*)$ { + rewrite ^/(.*)$ /hosting/index.php?rp=/store/sitelock/$1; + } + + location ~ /store/website-builder/?(.*)$ { + rewrite ^/(.*)$ /hosting/index.php?rp=/store/website-builder/$1; + } + + location ~ /store/order/?(.*)$ { + rewrite ^/(.*)$ /hosting/index.php?rp=/store/order/$1; + } + + location ~ /hosting/cart/domain/renew/?(.*)$ { + rewrite ^/(.*)$ /hosting/index.php?rp=/cart/domain/renew$1; + } + + location ~ /account/paymentmethods/?(.*)$ { + rewrite ^/(.*)$ /hosting/index.php?rp=/account/paymentmethods$1; + } + + location ~ /password/reset/?(.*)$ { + rewrite ^/(.*)$ /hosting/index.php?rp=/password/reset/$1; + } + + location ~ /account/security/?(.*)$ { + rewrite ^/(.*)$ /hosting/index.php?rp=/account/security$1; + } + + location ~ /subscription?(.*)$ { + rewrite ^/(.*)$ /hosting/index.php?rp=/subscription$1; + } + + location ~ /auth/provider/google_signin/finalize/?(.*)$ { + rewrite ^/(.*)$ /hosting/index.php?rp=auth/provider/google_signin/finalize$1; + } + + location ~ /admin/(addons|apps|search|domains|help\/license|services|setup|utilities\/system\/php-compat)(.*) { + rewrite ^/(.*)$ /hosting/admin/index.php?rp=/admin/$1$2 last; + } + + location ~ /admin/client/?(.*)/paymethods/?(.*)$ { + rewrite ^/(.*)$ /hosting/admin/index.php?rp=/client/?(.*)/paymethods/$1; + } + + location ~ /admin/setup/auth/?(.*)$ { + rewrite ^/(.*)$ /hosting/admin/index.php?rp=/setup/auth/$1; + } + + location ~ /admin/client/?(.*)/tickets/?(.*)$ { + rewrite ^/(.*)$ /hosting/admin/index.php?rp=/client/?(.*)/tickets/$1; + } + + location ~ /admin/client/?(.*)/invoice/?(.*)/capture/?(.*)$ { + rewrite ^/(.*)$ /hosting/admin/index.php?rp=/client/?(.*)/invoice/?(.*)/capture/$1; + } + + location ~ /admin/account/security/two-factor/?(.*)$ { + rewrite ^/(.*)$ /hosting/admin/index.php?rp=/admin/account/security/two-factor/$1; + } + + location ~ /admin/search/intellisearch?(.*)$ { + rewrite ^/(.*)$ /hosting/admin/index.php?rp=/search/intellisearch/$1; + } + + location ^~ /vendor/ { + deny all; + return 403; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/WooCommerce/WooCommerce b/v2-http3/WooCommerce/WooCommerce new file mode 100755 index 0000000..9c76e0f --- /dev/null +++ b/v2-http3/WooCommerce/WooCommerce @@ -0,0 +1,118 @@ +#{"rootDirectory":"","phpVersion":"8.0","varnishCacheSettings":{"cacheLifetime":"604800","controller":"wordpress","excludes":["^\/my-account\/","\/cart\/","\/checkout\/","wp-login.php"],"excludedParams":["__SID","noCache"]}} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location ~/\.git { + deny all; + } + + location ~/(wp-admin/|wp-login.php) { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header Host $host; + proxy_pass http://127.0.0.1:8080; + proxy_max_temp_file_size 0; + proxy_connect_timeout 7200; + proxy_send_timeout 7200; + proxy_read_timeout 7200; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location / { + {{varnish_proxy_pass}} + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header X-Varnish; + proxy_redirect off; + proxy_max_temp_file_size 0; + proxy_connect_timeout 720; + proxy_send_timeout 720; + proxy_read_timeout 720; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ { + # WordPress Multisite Subdirectory + rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 break; + rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 break; + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} + +server { + listen 8080; + listen [::]:8080; + {{server_name}} + {{root}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS "on"; + fastcgi_param SERVER_PORT 443; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + # WordPress Multisite Subdirectory + if (!-e $request_filename) { + rewrite /wp-admin$ https://$host$uri permanent; + rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last; + rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/WordPress/WordPress b/v2-http3/WordPress/WordPress new file mode 100644 index 0000000..9c76e0f --- /dev/null +++ b/v2-http3/WordPress/WordPress @@ -0,0 +1,118 @@ +#{"rootDirectory":"","phpVersion":"8.0","varnishCacheSettings":{"cacheLifetime":"604800","controller":"wordpress","excludes":["^\/my-account\/","\/cart\/","\/checkout\/","wp-login.php"],"excludedParams":["__SID","noCache"]}} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location ~/\.git { + deny all; + } + + location ~/(wp-admin/|wp-login.php) { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header Host $host; + proxy_pass http://127.0.0.1:8080; + proxy_max_temp_file_size 0; + proxy_connect_timeout 7200; + proxy_send_timeout 7200; + proxy_read_timeout 7200; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location / { + {{varnish_proxy_pass}} + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header X-Varnish; + proxy_redirect off; + proxy_max_temp_file_size 0; + proxy_connect_timeout 720; + proxy_send_timeout 720; + proxy_read_timeout 720; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ { + # WordPress Multisite Subdirectory + rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 break; + rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 break; + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} + +server { + listen 8080; + listen [::]:8080; + {{server_name}} + {{root}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS "on"; + fastcgi_param SERVER_PORT 443; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + # WordPress Multisite Subdirectory + if (!-e $request_filename) { + rewrite /wp-admin$ https://$host$uri permanent; + rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last; + rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/Yii/Yii 2 b/v2-http3/Yii/Yii 2 new file mode 100755 index 0000000..a29ec25 --- /dev/null +++ b/v2-http3/Yii/Yii 2 @@ -0,0 +1,88 @@ +#{"rootDirectory":"web","phpVersion":"7.4","varnishCacheSettings":{"cacheLifetime":"604800","controller":"generic","excludes":["^\/admin\/"],"excludedParams":["__SID","noCache"]}} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + location / { + {{varnish_proxy_pass}} + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header X-Varnish; + proxy_redirect off; + proxy_max_temp_file_size 0; + proxy_connect_timeout 720; + proxy_send_timeout 720; + proxy_read_timeout 720; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; + proxy_temp_file_write_size 256k; + } + + location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map)$ { + add_header Access-Control-Allow-Origin "*"; + add_header alt-svc 'h3=":443"; ma=86400'; + expires max; + access_log off; + } + + if (-f $request_filename) { + break; + } +} + +server { + listen 8080; + listen [::]:8080; + {{server_name}} + {{root}} + + include /etc/nginx/global_headers; + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_intercept_errors on; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + try_files $uri =404; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS "on"; + fastcgi_param SERVER_PORT 443; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file diff --git a/v2-http3/ownCloud/OwnCloud 10 b/v2-http3/ownCloud/OwnCloud 10 new file mode 100755 index 0000000..a314909 --- /dev/null +++ b/v2-http3/ownCloud/OwnCloud 10 @@ -0,0 +1,105 @@ +#{"rootDirectory":"","phpVersion":"7.4"} +server { + listen 80; + listen [::]:80; + listen 443 quic; + listen 443 ssl; + listen [::]:443 quic; + listen [::]:443 ssl; + http2 on; + http3 off; + {{ssl_certificate_key}} + {{ssl_certificate}} + {{server_name}} + {{root}} + + {{nginx_access_log}} + {{nginx_error_log}} + + add_header Strict-Transport-Security "max-age=15552000; includeSubDomains"; + + if ($scheme != "https") { + rewrite ^ https://$host$uri permanent; + } + + location ~ /.well-known { + auth_basic off; + allow all; + } + + {{settings}} + + include /etc/nginx/global_headers; + + location = /.well-known/carddav { + return 301 $scheme://$host/remote.php/dav; + } + + location = /.well-known/caldav { + return 301 $scheme://$host/remote.php/dav; + } + + error_page 403 /core/templates/403.php; + error_page 404 /core/templates/404.php; + + location / { + rewrite ^ /index.php$uri; + } + + location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ { + return 404; + } + + location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { + return 404; + } + + try_files $uri $uri/ /index.php?$args; + index index.php index.html; + + location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) { + include fastcgi_params; + fastcgi_split_path_info ^(.+?\.php)(\/.*|)$; + set $path_info $fastcgi_path_info; + try_files $fastcgi_script_name =404; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $path_info; + fastcgi_param front_controller_active true; + fastcgi_read_timeout 3600; + fastcgi_send_timeout 3600; + fastcgi_param HTTPS $fastcgi_https; + fastcgi_pass 127.0.0.1:{{php_fpm_port}}; + fastcgi_param PHP_VALUE "{{php_settings}}"; + } + + location ~ ^/(?:updater|ocs-provider)(?:$|/) { + try_files $uri $uri/ =404; + index index.php; + } + + location ~* \.(?:css|js)$ { + try_files $uri /index.php$uri$is_args$args; + add_header Cache-Control "public, max-age=7200"; + # Add headers to serve security related headers (It is intended to have those duplicated to the ones above) + # Before enabling Strict-Transport-Security headers please read into this topic first. + #add_header Strict-Transport-Security "max-age=15552000; includeSubDomains"; + add_header X-Content-Type-Options nosniff; + add_header X-Frame-Options "SAMEORIGIN"; + add_header X-XSS-Protection "1; mode=block"; + add_header X-Robots-Tag none; + add_header X-Download-Options noopen; + add_header X-Permitted-Cross-Domain-Policies none; + # Optional: Don't log access to assets + access_log off; + } + + location ~* \.(?:svg|gif|png|html|ttf|woff|woff2|ico|jpg|jpeg)$ { + try_files $uri /index.php$uri$is_args$args; + # Optional: Don't log access to other assets + access_log off; + } + + if (-f $request_filename) { + break; + } +} \ No newline at end of file