Устранение неполадок: ошибка поиска 404
При использовании расширенного поиска в HTML-файлах, экспортированных из Dr.Explain, вместо результатов поиска вы можете столкнуться с сообщениями об ошибках с кодом 404.
Ошибка 404 означает, что веб-сервер не может найти страницу или файл, который пытается загрузить браузер. Как правило, это проблема конфигурации веб-сервера, а не проблема бэкенда, поскольку бэкенд настроен так, чтобы не возвращать код ошибки 404.
Наиболее вероятные причины
-
Опечатка в URL: убедитесь, что вы используете правильный путь URL.
-
Отсутствие конфигурации: на веб-сервере нет правила для обработки запросов /drexsearch/.
-
Откройте свою документацию в браузере.
-
Щелкните на любой раздел в меню.
-
В адресной строке браузера измените 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;
}
Для серверов Apache:
Проверьте, что в конфигурации есть этот блок:
RewriteEngine On
RewriteRule ^(?:.*/)?drexsearch/(.*)$ http://127.0.0.1:8082/$1 [P,L]
Распространённые ошибки, на которые стоит обратить внимание:
-
Опечатка в пути (например, /drxsearch/ вместо /drexsearch/).
-
В конфигурации nginx отсутствует /$1$is_args$args или в конфигурации Apache отсутствует $1.
-
Неправильный путь к корневому каталогу документации.
Если вы нашли ошибку: исправьте конфигурацию и перезапустите веб-сервер. Повторите проверку.
Этот шаг требует доступа к файлам логов вашего сервера.
Для nginx:
sudo tail -f /var/log/nginx/error.log
Для Apache:
sudo tail -f /var/log/apache2/error.log
Обратите внимание на такие сообщения, как:
-
"file not found" — файл по указанному пути не существует.
-
"Primary script unknown" — Apache не может найти файл скрипта.
-
"upstream not found" — путь к бэкенду настроен неверно.