| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- #=========================================================================#
- # Default Web Domain Template #
- # DO NOT MODIFY THIS FILE! CHANGES WILL BE LOST WHEN REBUILDING DOMAINS #
- # https://hestiacp.com/docs/server-administration/web-templates.html #
- #=========================================================================#
- server {
- listen %ip%:%web_ssl_port% ssl;
- server_name %domain_idn% %alias_idn%;
- root %sdocroot%;
- index index.php index.html index.htm;
- access_log /var/log/nginx/domains/%domain%.log combined;
- access_log /var/log/nginx/domains/%domain%.bytes bytes;
- error_log /var/log/nginx/domains/%domain%.error.log error;
- ssl_certificate %ssl_pem%;
- ssl_certificate_key %ssl_key%;
- #Commented out ssl_stapling directives due to Lets Encrypt ending OCSP support in 2025
- #ssl_stapling on;
- #ssl_stapling_verify on;
- # TLS 1.3 0-RTT anti-replay
- if ($anti_replay = 307) { return 307 https://$host$request_uri; }
- if ($anti_replay = 425) { return 425; }
- include %home%/%user%/conf/web/%domain%/nginx.hsts.conf*;
- # Add headers to serve security related headers
- 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;
- location = /robots.txt {
- allow all;
- log_not_found off;
- access_log off;
- }
- location ~ /\.(?!well-known\/) {
- deny all;
- return 404;
- }
- # set max upload size
- client_max_body_size 512M;
- # Disable gzip to avoid the removal of the ETag header
- gzip off;
- # Uncomment if your server is build with the ngx_pagespeed module
- # This module is currently not supported.
- #pagespeed off;
- error_page 403 /core/templates/403.php;
- error_page 404 /core/templates/404.php;
- location / {
- try_files $uri $uri/ /index.php;
- }
- location ~ \.php$ {
- try_files $fastcgi_script_name =404;
- include /etc/nginx/fastcgi_params;
- fastcgi_intercept_errors on;
- fastcgi_param HTTP_EARLY_DATA $rfc_early_data if_not_empty;
- fastcgi_param front_controller_active true;
- # Avoid sending the security headers twice
- fastcgi_param modHeadersAvailable true;
- fastcgi_param PATH_INFO $fastcgi_path_info;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_request_buffering off;
- fastcgi_split_path_info ^(.+\.php)(/.*)$;
- fastcgi_pass unix:/run/php/php7.4-fpm.sock;
- }
- location ~* \.(?:svg|gif|png|webp|html|ttf|woff|ico|jpg|jpeg)$ {
- try_files $uri /index.php$uri$is_args$args;
- # Optional: Don't log access to other assets
- access_log off;
- }
- location /error/ {
- alias %home%/%user%/web/%domain%/document_errors/;
- }
- location /vstats/ {
- alias %home%/%user%/web/%domain%/stats/;
- include %home%/%user%/web/%domain%/stats/auth.conf*;
- }
- proxy_hide_header Upgrade;
- include /etc/nginx/conf.d/phpmyadmin.inc*;
- include /etc/nginx/conf.d/phppgadmin.inc*;
- include %home%/%user%/conf/web/%domain%/nginx.ssl.conf_*;
- }
|