Производительность Laravel Valet – как предотвратить ошибки 504 и ускорить работу Valet

На прошлой неделе я решил установить Laravel Valet на своем Mac. Но после установки производительности программы архитектуры микросервиса, на которой я ее использовал, была довольно медленной.

Мне было интересно, это проблема M1 или потому, что я еще не выключил машину. Я выключил, и проблема осталась. И я не мог найти в Интернете ничего, что указывало бы на то, что это была проблема с M1. Итак, как я могу это исправить?

В этом руководстве вы узнаете:

  • Почему возникает ошибка 504?
  • Что такое Laravel Valet и как он работает?
  • Команды камердинера, которые вы должны знать
  • Как исправить ошибку 504 и ускорить производительность в Valet

Почему возникает ошибка 504?

изображение-145
Ошибка 504 Nginx

Ошибка 504, также известная как «Время ожидания шлюза», является ошибкой, которая возникает, когда серверу требуется больше времени, чем обычно, чтобы ответить на запрос HTTP. Поэтому он не может завершить цикл запроса.

Тайм-аут шлюза – это ошибка на стороне сервера, вызванная несколькими причинами. Это может возникнуть из-за проблем с подключением к сети, когда сервер превышает предел по умолчанию. 256M или время выполнения 60 секунд, перегруженный сервер, брандмауэр и т.д.

Эта ошибка также происходит с локальными серверами, такими как XAMPP, WAMP и Valet, во время жизненного цикла локальной разработки.

Эта статья поможет вам устранить эту проблему на Valet, добавив некоторые конфигурации для ускорения жизненного цикла запроса на сервер.

Что такое Laravel Valet и как он работает?

Laravel Valet – это среда разработки для macOS, Windows и других операционных систем. После установки Valet запускает процессы Nginx в фоновом режиме, когда включается ноутбук.

В отличие от других сред разработки, таких как XAMPP и WAMP, вам придется вручную запускать сервер всякий раз, когда вы начинаете работать. Затем Valet использует DnsMasq для прокси-сервера всех запаркованных программ до a .test домен.

Так, например, вы получите доступ на сервер XAMPP но на камердинере, вы бы сделали http://application.testи он будет указывать на то, где установлена ​​программа.

Работа с Valet означает, что вам не нужно размещать все приложения в каталоге htdocs или www. Любой случайный каталог, который вы создадите, будет идеально работать в Valet.

Полезные команды Valet, которые вы должны знать:

  • valet park: Регистрирует все программы/сайты в каталоге и предоставляет им доступ к домену .test.
cd ~/project_directory
valet park 
  • valet parked: Дает табличную разбивку всех зарегистрированных сайтов. Доступна такая информация, как название сайта, SSL, URL-адрес и путь.
cd ~/project_directory
valet parked
  • valet secure: Защищает ваше приложение с помощью сертификата SSL и делает сайт доступным через HTTPS.
cd ~/project_directory/site
valet secure
  • valet unsecure: Используйте эту команду, чтобы снять защиту с сайта и вернуться к обслуживанию через HTTP.
cd ~/project_directory/site
valet unsecure 
  • valet isolate: Изолирует сайт и заставляет его работать на другой версии PHP, которая не является глобально установленной версией. Вы можете бежать php -v на терминале, чтобы увидеть версию. Но если некоторые из ваших приложений хотят снизить или обновить, вам следует воспользоваться командой isolate и указать нужную версию. Команда isolate ниже принудительно использует сайт PHP версии 7.4:
cd ~/project_directory/site
valet isolate @php7.4
  • valet unisolate: Возвращает сайт в глобально установленную версию PHP.
cd ~/project_directory/site
valet unisolate
  • valet restart: Команда restart обеспечивает перезапуск всех служб камердинера. Это полезно при изменении, обновлении и установке конфигураций.
cd ~/project_directory/site
valet restart
  • valet -v: Эта команда помогает проверить текущую версию Valet. Не только это, но команда также показывает список всех доступных команд и описание того, что они делают в Valet.
~/project_directory/site
valet -v
Снимок экрана-2022-12-26-at-11.33.10
Доступные команды Valet

Как ускорить производительность в Valet

В терминале нам нужно будет создать файл www.conf в каталоге, а затем добавьте нужные параметры конфигурации.

Получите глобальную версию PHP и скопируйте ее следующим образом:

php -v

Выделите каталог и замените 7.4 версией PHP, которую вы скопировали ранее.

cd /opt/homebrew/etc/php/7.4/php-fpm.d

Создать www.conf такой файл:

touch www.conf

Откройте файл, чтобы добавить параметры конфигурации камердинера.

open -a TextEdit www.conf

Команда открывает www.conf файл в вашем текстовом редакторе, и вы можете обновить файл со следующими настройками:

pm.max_children = 200
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 20
pm.process_idle_timeout = 10s
pm.max_requests = 500

Сохраните и закройте файл из текстового редактора.

Давайте просмотрим каждую строку, которую мы добавили в www.conf файл:

  • pm это акроним для менеджера процессов, и настройки будут влиять на то, как менеджер процессов управляет каждым дочерним процессом. Нам доступны возможные значения: статические, по требованию и динамические.
  • pm.max_children является статической опцией, указывающей максимальное количество дочерних процессов, установленных на 200.
  • pm.start_servers, pm.max_spare_servers и pm.min_spare_servers: это динамические значения, а дочерние процессы устанавливаются динамически на основе директив сервера, то есть start_servers=20, min_spare_servers=10 и max_spare_servers=20.
  • pm.process_idle_timeout: общее время, необходимое для завершения/завершения необработанного запроса на неактивность, установлено на значение по умолчанию 10 секунд (с). Остальные единицы могут быть оценены в минутах (м), часах (ч) или днях (d).
  • pm.max_requests: Это касается максимального количества запросов, которые дочерний процесс может обработать за определенное время до того, как он будет уничтожен/прекращен. Если запрос выполняется максимально, он становится неактивным и pm избавляется от него.

Наконец, перезапустите все службы из терминала с помощью команды sudo brew. Обратите внимание еще раз на 7.4 – это из-за моей глобальной версии PHP.

sudo brew services restart php@7.4

Теперь вы можете попрощаться с ошибкой 504 и медленной работой Valet в вашей локальной среде.

Подведению

В этой статье вы узнали о работе с Laravel Valet и о том, как настроить все конфигурации Valet. Вы также узнали, как обеспечить быструю среду разработки и избавиться от постоянных ошибок времени ожидания 504 шлюза.

Продолжайте учиться и счастливое программирование!

Вы можете найти меня в LinkedIn и Twitter.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *