500 Internal Server Ошибка в зависимости от внешних загруженных файлов?
У меня 500 Внутренняя ошибка сервера и, скорее всего, в моем случае я думаю, что загрузка внешних файлов - моя проблема здесь. В моей строке состояния я получил сообщение Waiting for available sockets...
до того как это случилось
Я нашел эту информацию, когда я погуглил:
Время кодирования PHP
Если ваш PHP-скрипт устанавливает внешние сетевые соединения, время ожидания может истечь. Если будет предпринято слишком много подключений и истечет время ожидания, это вызовет "500 Internal Server Error". Чтобы избежать этих тайм-аутов и ошибок, вы должны убедиться, что PHP-скрипты закодированы с некоторыми правилами тайм-аута. Однако, как правило, трудно обнаружить ошибку тайм-аута при подключении к базе данных или извне к удаленным ресурсам (например, RSS-каналы). Они, по сути, замораживают сценарий от продолжения работы.
Удаление любых внешних подключений может повысить как производительность вашего веб-сайта, так и уменьшить вероятность получения "500 Internal Server Error".
1) Я динамически генерирую / загружаю css и js файлы с моего веб-сервера (*.php
файлы). Так что я не знаю, кэширует ли это современный браузер или не может кэшировать это вообще и обрабатывает ли это как новый запрос при каждой загрузке страницы? Потому что PHP генерирует это в зависимости от параметров, указывающих, какие css/js должны быть загружены. Это даже проблема или проблема, которая может вызвать эту 500 внутренних ошибок сервера?
2) Какое расширение Chrome вы можете порекомендовать для отслеживания и отладки всех сетевых данных? Какие инструменты, кроме Chrome DevTools, могут мне помочь?
3) Цитируемый текст говорит, что я должен позаботиться о тайм-аутах. Какие важные источники я должен проверить? Могут ли быть проблемы с ajax-запросами или сессиями php?
4) Самое главное: как я могу исправить эту ошибку? Домен можно перемещаться по адресу www.vaymodels.com, если это помогает упомянуть. Я не могу открыть его ни с каким браузером, даже с моим смартфоном (отключенный WiFi). Может быть, кто-то из вас может открыть его и просмотреть страницу источника.
Также стоит отметить, что это поведение только началось в последние несколько дней. Я постоянно загружал файлы, когда работал над своим сайтом, много обновлял домен, и случайно он вообще не загружался в течение 5-10 минут. Но это может быть достигнуто без ошибки 500 после этого. Теперь это кажется недоступным.
Изменить: Мой веб-хостер только что сказал мне, что они обновили мой предел FPM с 15 до 30. Он сказал, что слишком много php-процессов. Может ли это быть вызвано запросами mysql, которые я выполняю через файл, загруженный с помощью cronjob, или какими могут быть те процессы, которые мне нужно искать, и, скорее всего, это проблема?
1 ответ
Сначала вы должны понять, какие сценарии вызывают ошибку 500. Вы можете просмотреть журналы ошибок или добавить в начало подозрительные сценарии:
ini_set("display_errors",1);
error_reporting(E_ALL);
это должно помочь вам понять, где проблема, но также может нарушить вывод, поэтому будьте осторожны, если вы используете его в производственных средах.
О кэшировании ресурсов js и css: вы можете указать apache указать браузеру использовать кэшированную копию файла, используя некоторые директивы в файле.htaccess, такие как:
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
<IfModule mod_headers.c>
Header append Cache-Control "public"
</IfModule>
</IfModule>
Также имейте в виду, что такие лимиты срока годности могут быть хорошими в производственной среде, где предполагается, что вы не будете часто их менять.
Надеюсь, что это помогло.