diff --git a/nginx.conf.example b/nginx.conf.example new file mode 100644 index 000000000..064f1b200 --- /dev/null +++ b/nginx.conf.example @@ -0,0 +1,48 @@ +server { + listen 80 default_server; + listen 443 ssl http2; + server_name _; + ssl_certificate /ssl/crt/file.crt; + ssl_certificate_key /ssl/key/file.key; + + root /home/user/site.com; + + index index.html index.htm index.php; + + charset utf-8; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + # Prevent Direct Access to Protected Files + location ~ \.(env|log) { + deny all; + } + + # Prevent Direct Access To Protected Folders + location ~ /(app|bootstrap|config|database|resources|routes|storage|tests|artisan) { + return 301 $scheme://$host$uri$is_args$args; + } + + # Prevent Direct Access To modules/vendor Folders Except Assets + location ~ /(modules|vendor)\/(.*)\.((?!ico|gif|jpg|jpeg|png|js|css|less|sass|font|woff|woff2|eot|ttf|svg).)*$ { + return 301 $scheme://$host$uri$is_args$args; + } + + location ~ \.php$ { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass 127.0.0.1:9000; + #fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; #depends on the PHP version + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + + fastcgi_intercept_errors off; + fastcgi_buffer_size 16k; + fastcgi_buffers 4 16k; + fastcgi_connect_timeout 300; + fastcgi_send_timeout 300; + fastcgi_read_timeout 300; + } +}