Created
March 5, 2018 14:49
-
-
Save li0nel/3a18c4e74d3733ce8c6275987b1769e4 to your computer and use it in GitHub Desktop.
Nginx config for Laravel
This file contains 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
fastcgi_cache_path /dev/shm levels=1:2 keys_zone=laravel:100m; | |
fastcgi_cache_key "$scheme$request_method$host$request_uri$query_string"; | |
server { | |
listen 80 default_server; | |
server_name laravel.info; | |
root /usr/share/nginx/html/; | |
index index.php index.html; | |
client_max_body_size 5M; | |
# Compression | |
# Enable Gzip compressed. | |
gzip on; | |
# Enable compression both for HTTP/1.0 and HTTP/1.1. | |
gzip_http_version 1.1; | |
# Compression level (1-9). | |
# 5 is a perfect compromise between size and cpu usage, offering about | |
# 75% reduction for most ascii files (almost identical to level 9). | |
gzip_comp_level 5; | |
# Don't compress anything that's already small and unlikely to shrink much | |
# if at all (the default is 20 bytes, which is bad as that usually leads to | |
# larger files after gzipping). | |
gzip_min_length 256; | |
# Compress data even for clients that are connecting to us via proxies, | |
# identified by the "Via" header (required for CloudFront). | |
gzip_proxied any; | |
# Tell proxies to cache both the gzipped and regular version of a resource | |
# whenever the client's Accept-Encoding capabilities header varies; | |
# Avoids the issue where a non-gzip capable client (which is extremely rare | |
# today) would display gibberish if their proxy gave them the gzipped version. | |
gzip_vary on; | |
# Compress all output labeled with one of the following MIME-types. | |
gzip_types | |
application/atom+xml | |
application/javascript | |
application/json | |
application/rss+xml | |
application/vnd.ms-fontobject | |
application/x-font-ttf | |
application/x-web-app-manifest+json | |
application/xhtml+xml | |
application/xml | |
font/opentype | |
image/svg+xml | |
image/x-icon | |
text/css | |
text/plain | |
text/x-component; | |
# text/html is always compressed by HttpGzipModule | |
location / { | |
try_files $uri $uri/ /index.php?$query_string; | |
} | |
location ~ \.php$ { | |
root /var/www/html/public; | |
fastcgi_cache laravel; | |
fastcgi_cache_valid 200 204 1m; | |
fastcgi_ignore_headers Cache-Control; | |
fastcgi_no_cache $http_authorization $cookie_laravel_session; | |
fastcgi_cache_lock on; | |
fastcgi_cache_lock_timeout 10s; | |
add_header X-Proxy-Cache $upstream_cache_status; | |
fastcgi_pass app:9000; | |
fastcgi_index index.php; | |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | |
fastcgi_read_timeout 900s; | |
include fastcgi_params; | |
} | |
location ~* \.(jpg|jpeg|png|gif|ico|css|js|eot|ttf|woff|woff2)$ { | |
expires max; | |
add_header Cache-Control public; | |
add_header Access-Control-Allow-Origin *; | |
access_log off; | |
try_files $uri $uri/ /index.php?$query_string; | |
} | |
location ~ /\.ht { | |
deny all; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment