Skip to content

Instantly share code, notes, and snippets.

@jonathonbyrdziak
Last active June 18, 2020 17:55
Show Gist options
  • Star 36 You must be signed in to star a gist
  • Fork 12 You must be signed in to fork a gist
  • Save jonathonbyrdziak/7492621 to your computer and use it in GitHub Desktop.
Save jonathonbyrdziak/7492621 to your computer and use it in GitHub Desktop.
A configuration file for magento under nginx.
#####################################################
#
# Provided by the Magento Support Center
# http://magentosupport.help/knowledgebase/configuring-nginx-to-work-with-magento-advanced/
#
# Your Magento Tutorial specialists
#
server {
listen *:8080;
server_name fanatik.redrokk.com www.fanatikbike.com fanatikbike.com;
root /home/production/www.fanatikbike.com/web/webroot/;
##
# redirect to www
##
#if ($host !~* ^www\.) {
# rewrite ^(.*)$ http://www.$host$1 permanent;
#}
##
# dont log robots.txt requests
##
location /robots.txt {
allow all;
log_not_found off;
access_log off;
}
## 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 ^~ /pkginfo/ { deny all; }
location ^~ /report/config.xml { deny all; }
location ^~ /var/ { deny all; }
location /var/export/ { deny all; }
# deny htaccess files
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
##
# 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";
}
# error pages
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location / {
try_files /maintenance.html $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler
expires 30d; ## Assume all files are cachable
}
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;
}
##
# pass the PHP scripts to FastCGI server listening at unix:/tmp/php5-fpm.sock
##
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SERVER_PORT 80;
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;
}
rewrite ^/minify/([0-9]+)(/.*.(js|css))$ /lib/minify/m.php?f=$2&d=$1 last;
rewrite ^/skin/m/([0-9]+)(/.*.(js|css))$ /lib/minify/m.php?f=$2&d=$1 last;
}
@stealthpaladin
Copy link

I really appreciate this and some of your shell scripts! This comes in handy when I've got to get up and running after a long time away from away from Magento. I'm just not as familiar with Magento's needs as other PHP projects,...thanks very much!

@Rajesh-jai
Copy link

Hi,
I am new to nginx.please help me. My requirement is when opening http://127.0.0.1/bilanaust/employee it have to open this http://127.0.0.1/bilanaust/employee/index.php/.

example http://127.0.0.1/bilanaust/blog http://127.0.0.1/bilanaust/blog/index.php/

Please help.

@webspeaks
Copy link

Thanks, it worked great 👍

Copy link

ghost commented Mar 11, 2016

thank you!

@shirtsofholl
Copy link

shirtsofholl commented Dec 25, 2016

Would this not cache ALL FILES? Also cart and all dynamic

        try_files /maintenance.html $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler
        expires 30d; ## Assume all files are cachable
    }```

@avesus
Copy link

avesus commented Nov 15, 2017

rewrite ^(.+)\.(\d+)\.(css|js)$ $1.$3 last; leads to 404 for files like wp-content/themes/business-elite/inc/js/jquery.mobile-1.3.2.js

@jonathonbyrdziak
Copy link
Author

Hahahaha... I googled and got my own answer from 5 years ago....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment