Настройка Magento 2 с Redis, Varnish и Nginx как termination SSL в Ubuntu

Все блоги / Нетбуки и Планшеты 11 декабря 2020 160   

В этой статье мы покажем вам, как установить Magento 2 на Ubuntu 16.04 VPS с MariaDB, PHP-FPM 7.0, Varnish как полный кэш страниц, Nginx, как termination SSL и Redis для сеанс хранения и кэширования страниц. Это руководство должно работать на других системах Linux VPS, но была испытана и написана для Ubuntu 16.04.

Войдите на свой VPS через SSH



ssh destroyer@my_server

Обновление системы и установка необходимых пакетов



sudo apt-get update && sudo apt-get -y upgradesudo apt-get -y install curl nano git

Установка MariaDB 10,0

Установите последнюю версию 10.0 сервера MariaDB из официальных репозиториев Ubuntu:



sudo apt-get install -y mariadb-server

Когда установка завершена, выполните следующую команду, чтобы обеспечить защиту:



mysql_secure_installation

Далее, нам необходимо создать базу данных для нашей установки Magento.



MySQL -p -uroot

MariaDB [(none)]> CREATE DATABASE magento;MariaDB [(none)]> GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'my_very_strong_password';MariaDB [(none)]> FLUSH PRIVILEGES;MariaDB [(none)]> q

Установка PHP 7.0, composer и все необходимые модули PHP

Чтобы установить последнюю стабильную версию PHP 7.0 и все необходимые модули, выполните следующую команду:



sudo apt-get -y install php-fpm php-cli php-gd php-imagick php-mysql php-mcrypt php-pear php-curl php-intl php-xsl php-zip php-mbstring

Изменение нескольких параметров PHP по умолчанию:



sudo sed -i "s/memory_limit = .*/memory_limit = 256M/" /etc/php/7.0/fpm/php.inisudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 128M/" /etc/php/7.0/fpm/php.inisudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.0/fpm/php.inisudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.0/fpm/php.ini

Composer является менеджером зависимостей для PHP с помощью которого можно установить пакеты. Композитор будет тянуть все необходимые библиотеки и зависимости, необходимые для вашего проекта.



curl -sS https://getcomposer.org/installer | phpsudo mv composer.phar /usr/local/bin/composer

Установка Magento 2 из Github

Клонирование репозиторий Magento в каталог ~/myMagentoSite.ru, используя следующую команду:



sudo git https://github.com/magento/magento2.git /var/www/myMagentoSite.ru

Получите последнюю стабильную версию, в момент написания это Magento 2.1.2:



CD /var/www/myMagentoSite.ru

sudo git checkout $(git describe --tags $(git rev-list --tags --max-count=1))

Запуск composer, чтобы установить все зависимости Magento:



sudo composer install

Для продолжения установки вы можете использовать мастер установки или командную строку, в данном руководстве мы будем использовать последнюю.



sudo bin/magento setup:install --base-url=http://myMagentoSite.ru/ --db-host=localhost --db-name=magento --db-user=magento --db-password=my_very_strong_password --admin-firstname=First --admin-lastname=Last --admin-email=user@myMagentoSite.ru --admin-user=admin --admin-password=my_very_strong_password987 --language=ru_RU --currency=RU --timezone=Europe/Moscow --use-rewrites=1

Если установка прошла успешно, вы увидите что-то вроде этого:



[SUCCESS]: Magento installation complete.[SUCCESS]: Magento Admin URI: /admin_medj1n

Выполните команду crontab, чтобы создать cronjob



crontab -u www-data -e

и добавьте следующую строку:



* * * * * /usr/bin/php /var/www/myMagentoSite.ru/bin/magento cron:run | grep -v "Запуск задачи по расписанию" >> /var/www/myMagentoSite.ru/var/log/magento.cron.log

И, наконец, установить правильные разрешения:



sudo chown -R www-data: /var/www/myMagentoSite.ru

Установка и настройка Nginx

Установка Nginx из репозиториев Ubuntu :: Официальный



sudo apt-get -y install nginx

Создание нового блока сервера Nginx со следующим содержанием:



sudo nano /etc/nginx/sites-available/myMagentoSite.ru

upstream fastcgi_backend { server unix:/run/php/php7.0-fpm.sock;}server { server_name myMagentoSite.ru www.myMagentoSite.ru; listen 80; set $MAGE_ROOT /var/www/myMagentoSite.ru; set $MAGE_MODE developer; # or production access_log /var/log/nginx/myMagentoSite.ru-access.log; error_log /var/log/nginx/myMagentoSite.ru-error.log; include /var/www/myMagentoSite.ru/nginx.conf.sample; }

Активировать блок сервера, создав символическую ссылку:



sudo ln -s /etc/nginx/sites-available/myMagentoSite.ru /etc/nginx/sites-enabled/myMagentoSite.ru

Удалить конфигурацию по умолчанию:



sudo rm -f /etc/nginx/sites-enabled/default

Проверка конфигурации Nginx и перезапуск Nginx:



sudo nginx -tsudo service nginx restart

Вы должны быть теперь в состоянии войти в свой бэкэнд Magento, перейдя в

http://myMagentoSite.ru/admin_medj1n

Используйте информацию, которую вы установили при запуске

bin/magento setup:install.

Установка и настройка Varnish

Установка Varnish так просто, выполнив следующую команду:



sudo apt-get install varnish

Зайдите в приборную панель администратора Magento, нажмите на ссылку МАГАЗИН (левый боковой панели) -> Конфигурация -> Дополнительно -> Система -> Full Page Cache.
Используйте системное значение Unselected, из списка приложений Caching, выберите Varnish Cache (Recommended), сохраните конфигурацию, нажмите на ссылку Конфигурация Varnish и нажмите на Export VCL для кнопки Varnish 4. Файл varnish.vcl, который мы будем использовать, будет экспортирован в каталог /var/www/myMagentoSite.ru/var/.

Кэш Flush  Magento:



sudo php bin/magento cache:flush

Удалите файл /etc/varnish/default.vcl и создайте симлинк на экспортируемую конфигурацию varnish.



sudo rm -f /etc/varnish/default.vclsudo ln -sf /var/www/myMagentoSite.ru/var/varnish.vcl /etc/varnish/default.vcl

Для изменения порта varnish от 6081 до 80, нам нужно изменить конфигурацию службы Systemd.

Создайте новый файл customexec.conf



sudo mkdir -p /etc/systemd/system/varnish.service.dsudo nano /etc/systemd/system/varnish.service.d/customexec.conf

вставьте следующее:



[Service]ExecStart=ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m

и перезагрузите Systemd



sudo systemctl daemon-reload

Теперь нам нужно изменить порт прослушивания Nginx от 80 до 8080 и включить termination Nginx SSL с http2, чтобы сделать это откройте файл конфигурации Nginx и измените его следующим образом:



sudo nano /etc/nginx/sites-available/myMagentoSite.ru

upstream fastcgi_backend { server unix:/run/php/php7.0-fpm.sock;}server { server_name myMagentoSite.ru www.myMagentoSite.ru; listen 8080; set $MAGE_ROOT /var/www/myMagentoSite.ru; set $MAGE_MODE production; # or developer access_log /var/log/nginx/myMagentoSite.ru-access.log; error_log /var/log/nginx/myMagentoSite.ru-error.log; include /var/www/myMagentoSite.ru/nginx.conf.sample; }server { listen 443 ssl http2; server_name myMagentoSite.ru www.myMagentoSite.ru; ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; # change with your SSL cert ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; # change with your SSL key ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL'; ssl_session_cache shared:SSL:10m; ssl_session_timeout 24h; keepalive_timeout 300s; location / { proxy_pass http://127.0.0.1; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Ssl-Offloaded "1"; #proxy_hide_header X-Varnish; #proxy_hide_header Via; proxy_set_header X-Forwarded-Proto $scheme; }}

Если вы еще не имеете сертификат SSL, вы можете приобрести сертификат доверенного SSL или получить его бесплатно с помощью Let’s Encrypt.

Перезапуск Varnish и Nginx:



sudo systemctl restart nginxsudo systemctl restart varnish

Изменить базовый URL для протокола HTTPS и очистите кэш



sudo bin/magento setup:store-config:set --base-url="https://myMagentoSite.ru"sudo php bin/magento cache:flush

Если все настроено правильно, то вы должны быть в состоянии войти в свой бэкэнд Magento, перейдя по ссылке https://myMagentoSite.ru/admin_medj1n.

Установка и настройка кэширования Redis

Redis является одним из ключевых значений в памяти хранилища данных, и мы будем использовать его для замены бэкэнда Magento 2 Zend_Cache_Backend_File по умолчанию. Установите Redis, выполнив следующую команду:



apt-get install php-redis redis-server

Чтобы настроить установку Magento используйте Redis для хранения сессии, откройте файл app/etc/env.php и измените/добавьте следующее:



sudo nano /var/www/myMagentoSite.ru/app/etc/env.php

изменение:



'session' => array ( 'save' => 'files', ),

с:



'session' => array ( 'save' => 'redis', 'redis' => array ('host' => '127.0.0.1','port' => '6379','password' => '','timeout' => '2.5','persistent_identifier' => '','database' => '0','compression_threshold' => '2048','compression_library' => 'gzip','log_level' => '1','max_concurrency' => '6','break_after_frontend' => '5','break_after_adminhtml' => '30','first_lifetime' => '600','bot_first_lifetime' => '60','bot_lifetime' => '7200','disable_locking' => '0','min_lifetime' => '60','max_lifetime' => '2592000' )),

и использовать Redis для кэширования страниц:



'cache' =>array( 'frontend' => array( 'default' => array( 'backend' => 'Cm_Cache_Backend_Redis', 'backend_options' => array( 'server' => '127.0.0.1', 'port' => '6379' ), ), 'page_cache' => array( 'backend' => 'Cm_Cache_Backend_Redis', 'backend_options' => array( 'server' => '127.0.0.1', 'port' => '6379', 'database' => '1', 'compress_data' => '0' ) ) )),

И, наконец очистите кэш снова:



sudo php bin/magento cache:flush

Далее оптимизация

Для дальнейшей оптимизации вашей установки Magento в панели управления администратора Magento:

1. Перейдите в МАГАЗИН -> Конфигурация -> Каталог -> Каталог -> Используйте плоский каталог, выберите Да и нажмите кнопку Сохранить конфигурацию.
2. Перейдите к МАГАЗИН -> Конфигурация -> Дополнительно -> Инструменты разработчика -> Параметры JavaScript и установите Merge JavaScript Files и Minify JavaScript – Files на Да и нажмите кнопку Сохранить конфигурацию ..
3. Перейдите к МАГАЗИН -> Конфигурация -> Дополнительно -> Разработчик -> Настройки CSS и установить как Merge CSS Files и Minify CSS – Files на Да и нажмите кнопку Сохранить конфигурацию.
4. Рассмотрите вопрос об использовании CDN – сеть доставки контента

Не забудьте очистить кэш:



sudo php bin/magento cache:flush

Вот и все. Вы успешно установили Magento 2 с Redis в качестве хранилища сеанса и кэширования страниц, Varnish в качестве полного кэширования страниц и Nginx как SSL termination на вашем Ubuntu 16,04 VPS. Для получения дополнительных сведений о том, как управлять вашей установкой Magento, пожалуйста, обратитесь к официальной документации 

Источник: AndreyEx.ru

The post Настройка Magento 2 с Redis, Varnish и Nginx как termination SSL в Ubuntu appeared first on SEO & SMO.

  • Оцените публикацию
  • 0

Похожие публикации

@
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent

Архив публикаций