Last active
November 30, 2017 11:22
-
-
Save pedrambehroozi/1fe93475c05a96214ff28706fe9fad63 to your computer and use it in GitHub Desktop.
A very basic, simple Nginx configuration file for Magento
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
server { | |
listen 80; | |
server_name www.sample-magento.com; | |
return 301 $scheme://sample-magento.com$request_uri; | |
} | |
server { | |
listen 80; | |
server_name sample-magento.com; | |
root /path/to/magento; | |
## Gzipping is an easy way to reduce page weight | |
gzip on; | |
gzip_vary on; | |
gzip_proxied any; | |
gzip_types application/javascript application/x-javascript text/javascript text/css; | |
gzip_buffers 16 8k; | |
gzip_comp_level 6; | |
location / { | |
index index.html index.php; ## Allow a static html file to be shown first | |
try_files $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler | |
expires 30d; ## Assume all files are cachable | |
} | |
## These locations would be hidden by .htaccess normally | |
location ^~ /app/ { deny all; } | |
location ^~ /includes/ { deny all; } | |
location ^~ /lib/ { deny all; } | |
location ^~ /media/downloadable/ { deny all; } | |
location ^~ /downloader/ { deny all; } | |
location ^~ /dev/ { deny all; } | |
location ^~ /pkginfo/ { deny all; } | |
location ^~ /report/config.xml { deny all; } | |
location ^~ /var/ { deny all; } | |
location /var/export/ { ## Allow admins only to view export folder | |
auth_basic "Restricted"; ## Message shown in login window | |
auth_basic_user_file htpasswd; ## See /etc/nginx/htpassword | |
autoindex on; | |
} | |
## | |
# Rewrite for versioned CSS+JS via filemtime | |
## | |
location ~* ^.+\.(css|js)$ { | |
rewrite ^(.+)\.(\d+)\.(css|js)$ $1.$3 last; | |
expires 31536000s; | |
access_log off; | |
log_not_found off; | |
add_header Pragma public; | |
add_header Cache-Control "max-age=31536000, public"; | |
} | |
## | |
# Aggressive caching for static files | |
# If you alter static files often, please use | |
# add_header Cache-Control "max-age=31536000, public, must-revalidate, proxy-revalidate"; | |
## | |
location ~* \.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|ogv|otf|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|t?gz|tif|tiff|ttf|wav|webm|wma|woff|wri|xla|xls|xlsx|xlt|xlw|zip)$ { | |
expires 31536000s; | |
access_log off; | |
log_not_found off; | |
add_header Pragma public; | |
add_header Cache-Control "max-age=31536000, public"; | |
} | |
location /. { ## Disable .htaccess and other hidden files | |
return 404; | |
} | |
location @handler { ## Magento uses a common front handler | |
rewrite / /index.php; | |
} | |
location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler | |
rewrite ^(.*.php)/ $1 last; | |
} | |
location ~ .php$ { ## Execute PHP scripts | |
if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss | |
expires off; ## Do not cache dynamic content | |
# Use either a socket or a port | |
fastcgi_pass 127.0.0.1:9000; | |
#fastcgi_pass unix:/var/run/php5-fpm.sock; | |
fastcgi_index index.php; | |
fastcgi_send_timeout 1800; | |
fastcgi_read_timeout 1800; | |
fastcgi_connect_timeout 1800; | |
## fastcgi_param HTTPS $fastcgi_https; | |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | |
## fastcgi_param MAGE_RUN_CODE default; ## Store code is defined in administration > Configuration > Manage Stores | |
fastcgi_param MAGE_RUN_TYPE store; | |
include fastcgi_params; ## See /etc/nginx/fastcgi_params | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment