Исправить Valet, WordPress, Ajax, Bad Gateway
Некоторое время назад я вернулся к использованию Valet для локальной разработки, и с тех пор я доволен этим. Вплоть до прошлой недели я еще не сталкивался с какими-либо проблемами.
Но при работе над плагином WordPress, который импортирует данные с помощью admin-ajax, я продолжал получать любопытное сообщение в консоли независимо от того, насколько велики или малы были данные. В частности, я получал сообщение об ошибке «502 (плохой шлюз)».
Сервер, действуя как шлюз или прокси, получил недопустимый ответ от входящего сервера, к которому он обращался при попытке выполнить запрос.
И если вы попытаетесь поставить диагноз на основе этого определения, вы далеко не уйдете. Дело не в том, что это неправильно, а в том, что вам нужно изменить конфигурацию вашего сервера.
К счастью, это легко. Или это, вероятно, легко.
Valet, WordPress, Ajax, плохой шлюз: исправление
Прежде чем поделиться исправлением, я скажу, что это заставило меня погрузиться в глубокую кроличью нору всех видов конфигураций Nginx, информации об обратном прокси, PHP-FPM и так далее и тому подобное. Если вы выберете для этого Google, имейте в виду, что вы, вероятно, тоже столкнетесь с ними.
И правда, может быть, в этом и заключается ваша проблема (я поделюсь ссылками внизу поста), но мое конкретное решение было намного проще.
Предполагая, что вы используете macOS, перейдите в каталог .valet в своем терминале с помощью следующей команды:
$ cd ~/.valet
Оказавшись там, найдите каталог Nginx и введите:
$ ls Nginx
Проверьте, видите ли вы файл для вашего конкретного сервера разработки. Обратите внимание, что я использую команду link вместо команды park, поэтому у меня будет что-то вроде wptrunk.dev. Если у вас нет файла там, это, вероятно, проблема.
И если это так, введите следующую команду:
$ touch Nginx/your-site.dev
Где your-site.dev — это домен, вызывающий проблему.
Затем откройте этот конкретный файл в выбранном вами текстовом редакторе и добавьте две строки:
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
Сохраните файл, затем перезапустите Valet в терминале, выполнив простую команду:
$ valet restart
Затем повторите попытку решить проблему, с которой вы столкнулись. Для меня сработало увеличение (или определение) размеров буфера до указанных выше значений. Вам могут понадобиться большие значения, так что, как говорится, YMMV.
Дело в том, что исправление может быть не слишком сложным, поэтому, прежде чем вы начнете писать весь настраиваемый файл конфигурации с нуля, попробуйте сначала поработать с этими значениями.
Ссылки по теме
- 502 Ошибки на admin-ajax.php
- admin-ajax.php: 502 Плохой шлюз
- URL-адреса администратора WordPress возвращают 404
- Устранение неполадок Valet в Sierra
- Начиная с Laravel Valet на OSX
- восходящий поток отправил слишком большой заголовок при чтении заголовка ответа из восходящего потока

