Устранение неполадок: ошибка поиска 422
При использовании расширенного поиска в HTML-файлах, экспортированных из Dr.Explain, вместо результатов поиска вы можете столкнуться с сообщениями об ошибках с кодом 422.
Ошибка 422 означает, что веб-сервер перенаправляет запросы на бэкенд, но путь указан неверно. Обычно это проблема конфигурации веб-сервера.
Наиболее вероятные причины
-
В конфигурации nginx поисковому движку не передается путь: добавьте /$1$is_args$args в директиву proxy_pass.
-
В конфигурации Apache поисковому движку не передается путь: добавьте /$1 в RewriteRule.
-
Опечатка в шаблоне пути: убедитесь, что указано /drexsearch/, а не /drxsearch/.
-
Откройте свою документацию в браузере.
-
Щелкните на любой раздел в меню.
-
В адресной строке браузера измените URL, удалив имя файла в конце и добавив /drexsearch/ping. Например:измените http://ваш-сайт.com/docs/some-file.htmна http://ваш-сайт.com/docs/drexsearch/ping
-
Нажмите Enter.
Что вы должны увидеть: сообщение с текстом "If you see this text, Dr.Explain Search Backend is working..." (если вы видите этот текст, бэкенд Dr.Explain Search работает...)
Если вы видите это сообщение: бэкенд работает, но ваш веб-сервер не настроен на правильную переадресацию поисковых запросов. Перейдите к Шагу 3.
Если вы видите эту ошибку (или подобную):
{"error":"URL \"/drexsearch/ping\" is invalid..."}
Это означает, что ваш веб-сервер добавляет лишний префикс (в примере выше — /drexsearch) при переадресации на бэкенд. Перейдите к Шагу 3.
Если вы видите другую ошибку: возможно, бэкенд не запущен. Перейдите к Шагу 2, чтобы проверить, запущен ли бэкенд.
Если у вас есть доступ к серверу, подключитесь к нему (например, по SSH) и откройте терминал, затем выполните команду:
curl http://127.0.0.1:8082/ping
Что вы должны увидеть: сообщение с текстом "If you see this text, Dr.Explain Search Backend is working..." (если вы видите этот текст, бэкенд Dr.Explain Search работает...)
Если вы видите это сообщение: бэкенд работает, но ваш веб-сервер не настроен на правильную переадресацию поисковых запросов. Перейдите к Шагу 3.
Если вы видите ошибку: возможно, бэкенд не запущен. Перейдите к разделу "Устранение неполадок: ошибка поиска 502", чтобы проверить, работает ли служба бэкенда.
Этот шаг требует доступа к конфигурационным файлам вашего сервера.
Для серверов nginx:
Ваша конфигурация должна выглядеть так:
location ~ /drexsearch/(.*)$ {
proxy_pass http://127.0.0.1:8082/$1$is_args$args;
}
Наиболее вероятные ошибки:
отсутствие /$1$is_args$args:location ~ /drexsearch/(.*)$ {
proxy_pass http://127.0.0.1:8082;
}
Для серверов Apache:
Ваша конфигурация должна выглядеть так:
RewriteEngine On
RewriteRule ^(?:.*/)?drexsearch/(.*)$ http://127.0.0.1:8082/$1 [P,L]
Наиболее вероятные ошибки:
отсутствие /$1 part:RewriteRule ^(?:.*/)?drexsearch/(.*)$ http://127.0.0.1:8082 [P,L]
Если вы нашли ошибку: исправьте конфигурацию и перезапустите веб-сервер. Затем повторите проверку.
Этот шаг требует доступа к файлам логов вашего сервера.
Для nginx:
sudo tail -f /var/log/nginx/error.log
Для Apache:
sudo tail -f /var/log/apache2/error.log
Ищите: "upstream sent unexpected response code 422".