Устранение ошибки NGINX Internal Server Error 500 на стороне клиента и сервера.
Нгинкс (произносится) Engine-X), веб-сервер с открытым исходным кодом, выпущенный публично в октябре 2004 года, также функционирует как балансировщик нагрузки, обратный прокси и HTTP-кэш. Его популярность и полезность очевидны, поскольку он используется такими крупными технологическими компаниями, как Microsoft, Google, Facebook, Twitter и Apple.
Значение ошибки 500 Internal Server Error в Nginx
Как и другие программные приложения или серверы, Nginx может сталкиваться с ошибками, которые может выявить его встроенная система сообщений об ошибках. Однако ошибка 500 Internal Server Error — это уникальная ситуация. Эта ошибка также появляется на различных веб-серверах, таких как Apache и IIS.
Ошибка 500 — это код состояния HTTP, указывающий на проблему на сервере, первопричина которой неясна. В отличие от других кодов состояния HTTP, таких как 403 (Запрещено) или 404 (Не найдено), он не дает никаких подсказок о возможной причине.
Как исправить ошибку 500 в Nginx на стороне клиента?
Этот код ошибки указывает на проблему на стороне сервера, которую обычно можно решить на самом сервере. Однако в редких случаях ваш браузер может способствовать возникновению проблемы, создавая запрос, который сервер не может обработать.
Чтобы проверить, не является ли браузер причиной проблемы, откройте веб-сайт в другом браузере, на другом устройстве и в другой сети. Если все работает правильно, очистите кэш/данные исходного браузера и убедитесь, что никакие расширения браузера не вызывают проблему.
Если веб-сайт Nginx по-прежнему отображает ошибку 500, обратитесь к администратору вашего сервера для решения проблемы.
Как исправить ошибку 500 Nginx на стороне сервера?
Эта ошибка может быть вызвана простой синтаксической ошибкой или проблемой в серверной части приложения. Поскольку ошибка не указывает на первопричину, устранение неполадок может быть сложным. Однако не волнуйтесь, описанный ниже систематический подход поможет решить проблему.
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/sites-available nginx -t
Вы также можете использовать следующее:
nginx -t -c /path/to/nginx.conf
Если обнаружены синтаксические ошибки, исправьте их и выполните следующие действия для перезапуска/перезагрузки Nginx:
sudo service nginx restart nginx -s reload
В некоторых случаях может потребоваться изменить конфигурационный файл, как показано ниже:
try_files with try_files $uri =404
أو
try_files $uri $uri/ /index.html; with 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, заменив «user www-data» на «user root». После сохранения файла перезапустите Nginx и попробуйте снова открыть реестр.
4. Временно отключите Cloudflare или аналогичные сервисы.
Если вы используете Cloudflare или аналогичный сервис на своем сервере, и он настроен неправильно или конфликтует с последними обновлениями, временное отключение может помочь диагностировать проблему.
- Перейти к Панель управления Cloudflare Войдите в систему, используя свои учетные данные.
- Перейти к Обзор (Обзор) и развернуть Фильтр (Расширенные настройки).
- нажать на Приостановить работу сайта (Приостановите работу сайта) и подтвердите. Если ваш хостинг-провайдер использует интеграцию с Cloudflare, обязательно отключите и её.
- Убедитесь, что у вас указаны правильные IP-адреса для сайта, и проверьте, устранена ли ошибка внутреннего сервера Nginx 500. Не забудьте проверить как HTTP, так и HTTPS-версии сайта.
5. Проверьте сертификаты сервера.
Если срок действия какого-либо из ваших сертификатов истек или он стал недействительным в текущих настройках, это обязательно вызовет ошибку на внутреннем сервере.
- Настройте Nginx для использования айпи адрес Это относится к вашему сайту, а не к доменному имени.
- Запрещать SSL-проверка В поле proxy_pass добавьте самоподписанный сертификат. Вы можете создать его в панели управления Cloudflare (SSL > Клиентские сертификаты).
- Проверьте, корректно ли работает сервер. Если да, свяжитесь с центром сертификации или проверьте настройки на наличие некорректных конфигураций сертификатов.
6. Проверьте наличие ошибок в серверных приложениях.
Если Nginx перенаправляет запросы клиентов к другому сервису, который не работает корректно, это приводит к ошибке 500. Например, если сервер перенаправляет запросы клиентов к бэкэнд-приложению, такому как NodeJS, и приложение не функционирует должным образом, это приводит к вышеупомянутой ошибке.
Помните, если в логах сервера нет ошибок, это обычно указывает на проблему на стороне бэкэнда.
Для решения этой проблемы проверьте журналы серверной части приложения на наличие ошибок или исключений. Например, в WordPress журналы NodeJS можно найти по следующему пути:
/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 выполните следующие действия:
tail -f /var/log/php-fpm/www-error.log
Вместо этого перейдите в
/etc/php.ini
И изменить
display_errors = Выкл.
إلى
display_errors = On
Вы также можете поискать более мощный PHP-процессор (например, PHP-FPM) и включить кэширование Nginx.
13. Используйте минималистский подход.
Если вам по-прежнему не удается устранить ошибку 500, вы можете использовать минималистский подход для решения проблемы.
- созданный Резервное копирование На вашем сайте замените содержимое файла index.html простым текстовым файлом.
- Проверьте, есть ли на сайте Работает Начните добавлять маршруты, функции, услуги, плагины, скрипты и т. д. по одному.
- Обязательно проверяйте сайт после каждого шага и следите за тем, не повторяется ли проблема.
- Верните контент на свой сайт и проверьте, не является ли он причиной проблемы.
- Как только вы найдете элемент, вызывающий проблему, вы сможете ее устранить, поискав решение в интернете.
Как избежать повторения ошибки сервера Nginx 500 в будущем
Чтобы избежать повторного появления ошибки Nginx 500, выполните следующие действия:
- Регулярно проводите техническое обслуживание серверов.
- Убедитесь, что код и контент сайта (изображения, видео и т. д.) оптимизированы для ваших настроек.
- Создайте сеть доставки контента (CDN) для обслуживания сайта через кэш.
Если у вас возникнут вопросы, вы можете задать их в разделе комментариев.
Комментарии закрыты.