Антон Рябов bio photo

Антон Рябов

Не люблю бриться и у меня умный взгляд.

Email Twitter Telegram Github PGP RSS

Конфиг Nginx для Magento

За свою карьеру я собрал большой багаж опыта работы с веб-сервером Nginx и некоторые моменты освещал в данном блоге. Для навигации по теме используйте страницу Nginx 101



Magento – это e-commerce CMS, с открытым исходным кодом (open source). Существует платная версия с поддержкой, а так же бесплатная, так называемая - community edition. На данный момент Magento Inc. принадлежит компании Ebay Inc., хотя начинали разработку украинские парни, работают сейчас, может и они же, но компания уже американская.

Magento считается самой эффективной и стабильной CMS для интернет-магазина. В своих бесконечных исследованиях, я, естественно, попробовал и её. Однако понял, что необходимо много времени на качественную работу с данной системой, и поэтому остановился на стадии знакомства.

Так как этот блог посвящен советам по Nginx, Приведу конфиг для Magento:

server {
  listen   80;
  server_name domain.com www.domain.com;
  root   /var/www/domain.com;

  location / {
  index index.html index.php;

  try_files $uri $uri/ @handler;
  expires max; ## Максимальное время длительности кеша для файлов
  }

  ## Закрываем системные каталоги
  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; }

  ## Allow admins only to view export directory
  ## Set up the password for any username using this command:
  ## htpasswd -c /etc/nginx/htpasswd magentoadmin

  location /var/export/ {
    auth_basic           "Restricted";
    auth_basic_user_file htpasswd; ## Defined at /etc/nginx/htpassword
    autoindex            on;
  }

  ## Disable .htaccess and other hidden files
  location  /. {
    return 404;
  }

  ## Magento uses a common front handler
  location @handler {
    rewrite / /index.php;
  }

  ## Forward paths like /js/index.php/x.js to relevant handler
  location ~ .php/ {
    rewrite ^(.*.php)/ $1 last;
  }

  ## php-fpm parsing
  location ~ .php$ {

    ## Catch 404s that try_files miss
    if (!-e $request_filename) { rewrite / /index.php last; }

    ## Disable cache for php files
    expires        off;

    ## конфигурация php-fpm с использованием сокетов
    fastcgi_pass   unix:/tmp/php5-fpm.sock;
    fastcgi_param  HTTPS $fastcgi_https;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;

    ## Store code is located at Administration > Configuration > Manage Stores in your Magento Installation.
    fastcgi_param  MAGE_RUN_CODE default;
    fastcgi_param  MAGE_RUN_TYPE store;

    ## Tweak fastcgi buffers, just in case.
    fastcgi_buffer_size 128k;
    fastcgi_buffers 256 4k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
  }
}

Не забудьте заменить domain.com на ваше доменное имя, а так же выполнить:

$ service nginx reload

Материалы по теме:

#Nginx #CMS #TechAndDev