Created
August 10, 2021 11:46
-
-
Save Ulv/9ab967cf8a7c4dac94189c9c276c67ea to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
# Nginx vHost Template defintion for vhost-gen.py | |
# | |
# The 'feature' section contains optional features that can be enabled via | |
# conf.yml and will then be replaced into the main vhost ('structure' section) | |
# into their corresponding position: | |
# | |
# __XDOMAIN_REQ__ | |
# __PHP_FPM__ | |
# __ALIASES__ | |
# __DENIES__ | |
# __STATUS__ | |
# | |
# The features itself also contain variables to be adjusted in conf.yml | |
# and will then be replaced in their corresponding feature section | |
# before being replaced into the vhost section (if enabled): | |
# | |
# PHP-FPM: | |
# __PHP_ADDR__ | |
# __PHP_PORT__ | |
# XDomain: | |
# __REGEX__ | |
# Alias: | |
# __REGEX__ | |
# __PATH__ | |
# Deny: | |
# __REGEX__ | |
# Status: | |
# __REGEX__ | |
# | |
# Variables to be replaced directly in the vhost configuration can also be set | |
# in conf.yml and include: | |
# __VHOST_NAME__ | |
# __DOCUMENT_ROOT__ | |
# __INDEX__ | |
# __ACCESS_LOG__ | |
# __ERROR_LOG__ | |
# __PHP_ADDR__ | |
# __PHP_PORT__ | |
# | |
### | |
### Basic vHost skeleton | |
### | |
vhost: | | |
server { | |
listen __PORT____HTTP_PROTO____DEFAULT_VHOST__; | |
server_name __VHOST_NAME__; | |
access_log "__ACCESS_LOG__" combined; | |
error_log "__ERROR_LOG__" warn; | |
__REDIRECT__ | |
__SSL__ | |
__VHOST_DOCROOT__ | |
__VHOST_RPROXY__ | |
__PHP_FPM__ | |
__ALIASES__ | |
__DENIES__ | |
__SERVER_STATUS__ | |
# Custom directives | |
__CUSTOM__ | |
} | |
### | |
### vHost Type (normal or reverse proxy) | |
### | |
vhost_type: | |
# Normal vHost (-p) | |
docroot: | | |
# Define the vhost to serve files | |
root "__DOCUMENT_ROOT__"; | |
index __INDEX__; | |
# Reverse Proxy (-r) | |
rproxy: | | |
# Define the vhost to reverse proxy | |
location __LOCATION__ { | |
proxy_set_header Host $host; | |
proxy_set_header X-Real-IP $remote_addr; | |
proxy_pass __PROXY_PROTO__://__PROXY_ADDR__:__PROXY_PORT__; | |
} | |
### | |
### Optional features to be enabled in vHost | |
### | |
features: | |
# SSL Configuration | |
ssl: | | |
ssl_certificate __SSL_PATH_CRT__; | |
ssl_certificate_key __SSL_PATH_KEY__; | |
ssl_protocols __SSL_PROTOCOLS__; | |
ssl_prefer_server_ciphers __SSL_HONOR_CIPHER_ORDER__; | |
ssl_ciphers __SSL_CIPHERS__; | |
# Redirect to SSL directive | |
redirect: | | |
return 301 https://__VHOST_NAME__:__SSL_PORT__$request_uri; | |
# PHP-FPM will not be applied to a reverse proxy! | |
php_fpm: | | |
# PHP-FPM Definition | |
location / { | |
try_files $uri $uri/ @parse_route; | |
} | |
location @parse_route { | |
rewrite ^/(.*)$ /index.php?request_uri=$1&country=uk&city=london&time_zone= last; | |
} | |
location ~ \.php?$ { | |
try_files $uri = 404; | |
include fastcgi_params; | |
# https://stackoverflow.com/questions/1733306/nginx-errors-readv-and-recv-failed/51457613#51457613 | |
fastcgi_keep_conn off; | |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | |
fastcgi_split_path_info ^(.+\.php)(.*)$; | |
fastcgi_pass __PHP_ADDR__:__PHP_PORT__; | |
fastcgi_read_timeout __PHP_TIMEOUT__; | |
fastcgi_index index.php; | |
fastcgi_intercept_errors on; | |
} | |
alias: | | |
# Alias Definition | |
location ~ __ALIAS__ { | |
root __PATH__; | |
__XDOMAIN_REQ__ | |
} | |
deny: | | |
# Deny Definition | |
location ~ __REGEX__ { | |
deny all; | |
} | |
server_status: | | |
# Status Page | |
location ~ __REGEX__ { | |
stub_status on; | |
access_log off; | |
} | |
xdomain_request: | | |
# Allow cross domain request from these hosts | |
if ( $http_origin ~* (__REGEX__) ) { | |
add_header "Access-Control-Allow-Origin" "$http_origin"; | |
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; | |
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range'; | |
add_header 'Access-Control-Expose-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range'; | |
add_header 'Access-Control-Max-Age' 0; | |
return 200; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment