Мы все были там. Ваш замечательный веб-сайт успешно работает в течение нескольких месяцев, затем — БАМ — он исчезает. Или, чаще всего, определенные функции перестают функционировать. Несмотря на ваши протесты, что ничего не изменилось, ваш клиент не счастлив. Приготовьтесь к нескольким разочаровывающим часам проблем.
Шаг 1: выявить проблему
Это может показаться очевидным, но я знаю, что многие разработчики открывают свои IDE и начинают взламывать произвольный код. На данном этапе важнее определить проблему, чем причину. Сайт недоступен? Не работает определенная страница или функция? Это ограничено определенными браузерами?
Шаг 2. Проверка доступности ресурсов
В девяти случаях из десяти проблема будет вызвана проблемой подключения на вашем конце или на стороне клиента. Если вы не можете получить доступ к другим страницам, неудивительно, что ваш сайт исчез. Тем не менее, это не всегда очевидно; некоторые диапазоны IP-адресов, страны или разделы Интернета могут быть временно заблокированы.
Протестируйте свой сайт из разных мест — общедоступный прокси-сервер поможет определить, является ли это локальной или глобальной проблемой. Если возможно, проверьте состояние других сайтов, работающих на том же сервере или веб-хосте.
Еще одна менее очевидная проблема — дисковое пространство. Если вы работаете с загруженным сайтом, журналы сервера могут быстро использовать доступное пространство, даже если требования к хранилищу вашего приложения низки.
Помните, что вы можете использовать ресурсы на других серверах. Сюда входят файлы, размещенные на CDN, серверы баз данных или удаленно размещенные API-интерфейсы, такие как Google Maps, YouTube, Twitter, рекламные сервисы и т. Д.
Вы также должны проверить нагрузку на ваш сервер. Значительный всплеск трафика или атака типа «отказ в обслуживании» вызовут проблемы с доступом.
Наконец, действительна ли регистрация вашего домена и отвечает ли DNS-сервер так, как должен?
Шаг 3: Определите, что изменилось
Как только вы отказались от подключения, трафика, DNS и дискового пространства, пришло время определить, что изменилось. 999 раз из 1000 проблема будет вызвана обновлением.
Возможно, вы не трогали файлы, но уверены, что другие этого не сделали? Посоветуйтесь со всеми, кто имеет доступ, но не обязательно им верит. Вот типичный разговор, с которым вы столкнетесь …
Клиент: Мои сайты не работают. Что вы собираетесь с этим делать?
Вы: Я исправлю это. Вы внесли какие-либо изменения в последнее время?
Клиент: Нет. Это было так, когда я попал сюда.
… пятичасовое безумное расследование …
Вы: Вы изменили X, не так ли?
Клиент: X? О да, я сменил X. Я сделал это, когда возился с Y и Z.
Ваша заявка не может быть непосредственно виновата. Ваш веб-хостинг обновил ОС, языковую среду, программное обеспечение базы данных или права доступа к файлам? В то время как поставщики пытаются обеспечить обратную совместимость PHP, Ruby, Python, MySQL, PostgreSQL и т. Д., Возможности почти наверняка изменятся или прекратятся между выпусками.
Шаг 4: отклонить крайние случаи
Хотя это редко, вы должны искать признаки растрескивания. Такие программы, как WordPress , Joomla и OScommerce, являются очевидными целями, однако изменения часто неуловимы, потому что взломщик хочет сохранить доступ. Например, вы можете обнаружить, что надстройка файлового обозревателя установлена или фишинговые страницы появились глубоко внутри файловой структуры.
Наконец, вы никогда не должны исключать аппаратные проблемы. Поврежденные микросхемы памяти или сектора диска могут быть причиной любого количества странных проблем. Если возможно, оцените свое приложение в аналогичной настройке или установите отдельную тестовую версию на том же сервере.
Шаг 5: исправь свое приложение
Как только вы устранили невозможное, все, что остается, каким бы невероятным оно ни было, должно стать истиной. Возможно, ваш код не так совершенен, как вы думали …
Есть ли у вас какие-либо советы по диагностике проблем веб-сайта или приложения? С какой самой трудной проблемой вы столкнулись?