Как исправить «500 Внутренняя ошибка сервера NGINX» для клиента и сервера?
Nginx (произносится как Engine-Ex), веб-сервер с открытым исходным кодом, публично выпущенный в октябре 2004 года, также служит балансировщиком нагрузки, обратным прокси-сервером и кэшем HTTP. Его популярность и полезность очевидны в его принятии такими известными технологическими компаниями, как Microsoft, Google, Facebook, Twitter и Apple.
Нгинкс
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Значение внутренней ошибки сервера 500 в Nginx
Как и другие программные приложения или серверы, Nginx может сталкиваться с ошибками, которые можно выявить с помощью встроенных отчетов об ошибках. Однако внутренняя ошибка сервера 500 представляет собой уникальную ситуацию. Эта ошибка также появляется на различных веб-серверах, таких как Apache и IIS.
500 Внутренняя ошибка сервера Nginx
Ошибка 500 — это код состояния HTTP, указывающий на проблему с сервером, основная причина которой неясна. В отличие от других кодов состояния HTTP, таких как 403 (запрещено) или 404 (не найдено), он не дает подсказки о потенциальной причине.
Как исправить ошибку 500 в Nginx на стороне клиента?
Этот код ошибки представляет собой проблему на стороне сервера, которую обычно можно решить на сервере. Однако в редких случаях ваш браузер может внести свой вклад, создав запрос, который сервер не может обработать.
Чтобы убедиться, что браузер не вызывает проблем, откройте веб-сайт в другом браузере, на другом устройстве и в другой сети. Если все работает правильно, очистите кеш/данные исходного браузера и убедитесь, что никакие расширения браузера не вызывают проблему.
Если на веб-сайте Nginx по-прежнему отображается ошибка 500, обратитесь к администратору сервера, чтобы решить проблему.
Как исправить ошибку Nginx 500 на стороне сервера?
Эта ошибка может быть результатом простой синтаксической ошибки или проблемы с серверным приложением. Поскольку ошибка не раскрывает основную причину, ее устранение может оказаться сложной задачей. Однако не бойтесь: системный подход, обсуждаемый ниже, может решить эту проблему.
1. Проверьте перегрузку сервера
Если ваш сервер перегружен, он может отображать внутреннюю ошибку 500 из-за недостаточности ресурсов для важных задач. Проверьте загрузку ЦП, использование памяти и доступность дискового пространства с помощью команды Free, Top или HTop. На снимке экрана ниже показан вывод после выполнения команды top.
Проверьте ресурсы сервера
Если сервер перегружен, добавление дополнительных ресурсов должно устранить ошибку Nginx 500.
2. Проверьте синтаксис конфигурации.
Самая распространенная причина ошибки 500 в Nginx — неправильные настройки сервера из-за ошибки в синтаксисе конфигурации.
Чтобы это исправить, просмотрите файлы конфигурации Nginx и внимательно проверьте синтаксис на наличие ошибок или неуместных директив.
Затем проверьте файлы конфигурации Nginx на наличие синтаксических ошибок или неуместных директив. Используйте такие команды, как nginx -t или nginx -t -c /path/to/nginx.conf, чтобы проверить синтаксис и выявить любые ошибки. Выполните следующие команды в Терминале, чтобы обнаружить любые ошибки:
cd /etc/nginx/сайты доступны nginx -tПроверьте синтаксис конфигурации
Вы также можете использовать следующее:
nginx -t -c /путь/к/nginx.conf
Если обнаружены какие-либо синтаксические ошибки, исправьте их и выполните следующие действия, чтобы перезапустить/перезагрузить Nginx:
sudo сервис nginx перезапустить nginx -s перезагрузить
В некоторых случаях вам может потребоваться изменить файл конфигурации, как показано ниже:
try_files с try_files $uri =404
или
try_files $uri $uri//index.html; с try_files $uri/ $uri /index.php?$query_string;
3. Проверьте журналы сервера.
Когда Nginx выдает ошибку 500, он также создает запись во внутреннем журнале ошибок, которая может указывать на основную причину ошибки. Обычно логи сервера расположены по адресу:
/var/log/nginx/error.log
В дистрибутиве Linux выполните следующую команду, чтобы открыть журнал сервера:
cd /var/log/nginx cat error.log
На открывшейся странице вы можете проверить наличие признаков основной причины. Например, посмотрите на изображение ниже:
Проверьте журналы сервера
Это означает, что серверу не удалось установить соединение SSL/TLS с клиентом из-за проблемы с сертификатом SSL. После выявления проблемы в журналах вы можете найти потенциальные причины и решения в Интернете.
Если вы не можете открыть журнал из-за ошибки «отказано в разрешении» для папки, измените файл Nginx.conf, заменив «www-data пользователя» на «root пользователя». После сохранения файла перезапустите Nginx и снова откройте журнал.
4. Временно отключите Cloudflare или аналогичные службы.
Если вы используете Cloudflare или аналогичный сервис на своем сервере, и он неправильно настроен или конфликтует с недавними изменениями, временное его отключение может помочь диагностировать проблему.
- Перейдите к Панель управления Cloudflare и войдите в систему, используя свои учетные данные.
- Перейдите в раздел «Обзор» и разверните «Дополнительно».
- Нажмите «Приостановить веб-сайт» и подтвердите это. Если у вашего хостинг-провайдера есть интеграция с Cloudflare, убедитесь, что они также отключены.
- Убедитесь, что у вас есть правильные IP-адреса для веб-сайта, и проверьте, устранена ли внутренняя ошибка сервера Nginx 500. Не забудьте проверить версии веб-сайта как HTTP, так и HTTPS.Отключить CloudFlare на сайте
5. Проверьте сертификаты сервера.
Если срок действия какого-либо из ваших сертификатов истек или стал недействительным в вашей текущей настройке, это обязательно приведет к внутренней ошибке сервера.
- Настройте Nginx на использование IP-адреса вашего веб-сайта, а не имени домена.Используйте IP-адрес сервера в настройках Nginx.
- Отключите проверку SSL в proxy_pass и добавьте к нему самозаверяющий сертификат. Вы можете создать его на панели управления Cloudflare (SSL > Клиентские сертификаты).
- Посмотрите, правильно ли работает сервер. В этом случае обратитесь в орган, выдающий сертификаты, или проверьте свою настройку на наличие неправильных конфигураций сертификатов.
6. Проверьте наличие ошибок серверного приложения.
Если Nginx пересылает клиентские запросы другому сервису, который не работает должным образом, это вызывает ошибку 500. Например, если сервер перенаправляет клиентские запросы серверному приложению, такому как NodeJS, и приложение не работает правильно, это приводит к обсуждаемой ошибке.
Помните: если в журнале сервера нет ошибок, это обычно указывает на проблему с серверной частью.
Чтобы решить эту проблему, проверьте журналы серверных приложений на наличие ошибок или исключений. Например, в WordPress вы найдете журналы Node JS по адресу:
/var/www/<ваш_сайт>.com/logs/error.log
7. Недостаточные права доступа к файлам
Если у сервера Nginx отсутствуют необходимые разрешения для доступа к файлу или его выполнения, это приведет к ошибке 500. Например, на сайте WordPress произойдет внутренняя ошибка сервера, если сервер Nginx не сможет получить доступ к файлам PHP или HTML из папки public_html или обслужить их.
Чтобы исправить это, вы можете изменить необходимые разрешения Nginx для файлов или каталогов, к которым обращается сервер, с помощью команды chmod, обычно 755 для каталогов и 644 для файлов.
8. Проверьте совместимость плагина
Плагины существенно расширяют возможности сервера. Но неисправные, устаревшие или чрезмерно обновленные плагины могут вызвать внутренние ошибки сервера. Например, обновление WordPress может нарушить функциональность вашего веб-сайта, поскольку многие плагины становятся несовместимыми, пока они не будут обновлены.
Чтобы решить эту проблему, убедитесь, что каждый плагин совместим с серверным программным обеспечением и другими плагинами. Хотя это может показаться утомительным, оно того стоит. Альтернативно попробуйте отключить все плагины и посмотреть, устранит ли это ошибку.
Если вы недавно обновили программное обеспечение сервера, попробуйте вернуться к предыдущей версии (если возможно), чтобы посмотреть, исчезнет ли ошибка. Это подтвердит, является ли обновление причиной проблемы. Вы можете отложить обновление программного обеспечения до тех пор, пока все плагины не подтвердят совместимость.
9. Проверьте наличие неисправного сценария
Как и плагины, скрипты имеют решающее значение для определенных функций веб-сайта. Недействительный или обновленный сценарий, несовместимый со средой сервера, может вызвать внутреннюю ошибку сервера.
Вы можете решить эту проблему, отключив скрипты и проверив сервер Nginx. Если работает корректно, пройдитесь по скриптам и попытайтесь найти проблемные.
10. Увеличьте значение таймаута сервера.
Если значение тайм-аута сервера меньше времени ответа Nginx, вы столкнетесь с внутренней ошибкой сервера. Аналогично, если запрос сервера занимает больше времени, чем время ответа Nginx, возникнет проблема.
Увеличение значения тайм-аута вашего сервера должно решить проблему. Конкретные инструкции можно найти в Интернете.
11. Убедитесь, что все перенаправления работают.
Убедитесь, что все перенаправления работают правильно, когда Nginx работает в качестве прокси-сервера. Если сервер не может перенаправить запрос клиента на внутренний сервер, произойдет ошибка 500.
Временно отключите все перенаправления, чтобы проверить правильность работы. В случае успеха повторно активируйте каждый из них по отдельности, чтобы определить ошибочное перенаправление. После обнаружения проведите онлайн-исследование, чтобы найти потенциальные причины и решения этой конкретной ошибки перенаправления.
12. Использование PHP с Nginx
Nginx не поддерживает PHP изначально; поэтому неправильные настройки PHP с Nginx могут привести к внутренней ошибке сервера.
Чтобы решить эту проблему, проверьте интеграцию PHP с Nginx. Если ошибки отображения PHP отключены, сервер вернет ошибку Nginx 500, когда PHP обнаружит ошибку. Включение ошибок PHP может упростить устранение неполадок.
В CentOS 7 выполните следующее:
хвост -f /var/log/php-fpm/www-error.log
Альтернативно, перейдите в
/etc/php.ini
И изменить
display_errors = Выкл.
к
display_errors = Вкл.
Вы также можете поискать лучший обработчик PHP (например, PHP-FPM) и включить кеш Nginx.
13. Используйте минимальный подход
Если вы по-прежнему не можете устранить ошибку 500, вы можете использовать минимальный подход для решения проблемы.
- Создайте резервную копию своего сайта и замените содержимое сайта простым index.html, содержащим обычный текст.
- Проверьте, работает ли сайт, и начните добавлять директивы, функции, сервисы, плагины, скрипты и т. д. одну за другой.
- Обязательно проверяйте сайт после каждого шага и посмотрите, возникнет ли проблема снова.
- Добавьте обратно контент на свой сайт и посмотрите, не вызывает ли он проблему.
- Как только проблемный элемент будет найден, его можно исправить, выполнив поиск в Интернете.
Как избежать повторения ошибки сервера Nginx 500 в будущем
Вы можете предпринять следующие шаги, чтобы избежать повторения ошибки Nginx 500:
- Выполняйте регулярное обслуживание сервера.
- Убедитесь, что код и контент веб-сайта (изображения, видео и т. д.) оптимизированы для ваших настроек.
- Установите CDN для обслуживания веб-сайта через его кеш.
Если у вас есть вопрос, мы доступны в разделе комментариев.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)