пятница, 20 марта 2015 г.

Magento 2. Nginx config for multiple magentos

Ниже представлен конфиг для nginx, адаптированный под несколько хостов с Magento2. По сути отличие от классического конфига заключается в том, что nginx.conf.sample перекочевал в основной конфиг, который лежит в /etc/nginx/...
И изменено значение root для нескольких хостов. В моем случае, как видно из конфига, хосты Magento2 лежат тут:
/var/www/m2.dev/www/*

upstream fastcgi_backend {
   server   unix:/var/run/php5-fpm.sock;
}
server {
   listen 80;
        server_name m2.dev *.m2.dev;
        root /var/www/m2.dev/www/$subdomain;
        set $subdomain "";
        if ($host ~* ^([a-z0-9-\.]+)\.m2.dev$) {
            set $subdomain $1;
        }
        if ($host ~* ^www.m2.dev$) {
            set $subdomain "";
        }

    set $MAGE_MODE default;

    index index.php;
    autoindex off;
    # disable_symlinks on;
    charset off;

    location /setup/ {
        rewrite / /setup/index.php;

        location /setup/pub/ {}

        location /setup/index.php {
            fastcgi_pass   fastcgi_backend;

            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

    location / {
        root /var/www/m2.dev/www/$subdomain/pub;

        location / {
            rewrite / /index.php ;
        }

        location /static/ {

            if ($MAGE_MODE = "production") {
                expires max;
            }

            location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
                   add_header Cache-Control "public";
                   expires +1y;

                if (!-f $request_filename) {
                    rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
                }
            }

            location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
                add_header Cache-Control "no-store";
                    expires    off;

                if (!-f $request_filename) {
                       rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
                }

            }

            if (!-f $request_filename) {
                rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
            }
        }

        location /media/ {

            location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
                add_header Cache-Control "public";
                expires +1y;

                if (!-f $request_filename) {
                    rewrite / /get.php;
                }
            }

            location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
                add_header Cache-Control "no-store";
                expires    off;

                if (!-f $request_filename) {
                    rewrite / /get.php;
                }
            }

            if (!-f $request_filename) {
                rewrite / /get.php;
            }
        }

        location /media/customer/ {
            deny all;
        }

        location /media/downloadable/ {
            deny all;
        }

        location ~ /media/theme_customization/.*\.xml$ {
            deny all;
        }

        location /errors/ {
            try_files $uri =404;
        }

        location ~ ^/errors/.*\.(xml|phtml)$ {
            deny all;
        }

        location ~ cron\.php {
            deny all;
        }

        location ~ (index|get|static|report|404|503)\.php$ {
            fastcgi_pass   fastcgi_backend;

            fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
            fastcgi_param  PHP_VALUE "memory_limit=256M \n max_execution_time=600";
            fastcgi_read_timeout 600s;
            fastcgi_connect_timeout 600s;
            fastcgi_param  MAGE_MODE $MAGE_MODE;

            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

1 комментарий: