Мы недавно изменили серверы и хосты нашей тестовой | производственной среды. Сейчас мы все еще тестируем, но наш http://test.example.com, иногда некоторым пользователям показывается просто пустая страница. Это произошло на рабочем столе и в мобильной среде.
Мы используем Amazon Route 53 DNS для DNS и недавно сменили хостинг-провайдера с Rackspace на Linode.
Конфигурация тоже немного изменилась. Nginx теперь находится перед apache для статических ресурсов. Что не изменилось, так это использование php, mysql, ubuntu.
Странно то, что в 99% случаев все работает нормально, но в некоторых случаях мы заметили, что наши тестировщики видят пустую страницу. Страница загружается, кажется, что она умирает, а пользователь ничего не видит. Я не проверял источник страницы, который стоит на следующем месте в моем списке, но со мной этого не произошло.
Конфигурация сервера nginx:
server {
listen 80;
server_name www.testdev.example.com;
return 301 $scheme://testdev.example.com$request_uri;
}
server {
listen 80;
server_name example.bestride.com;
root /srv/www/example.com/public_html;
index index.php;
location ~* ^.+\.(?:js|css|jpe?g|htc|xml|otf|ttf|eot|woff|gif|png|svg|ico|pdf|html|htm)$ {
access_log off;
expires 30d;
#add_header Vary Accept-Encoding;
tcp_nodelay off;
open_file_cache max=3000 inactive=120s;
open_file_cache_valid 45s;
open_file_cache_min_uses 2;
open_file_cache_errors off;
}
location / {
try_files $uri @proxy;
}
location @proxy {
include /etc/nginx/proxy_params;
proxy_pass http://127.0.0.1:8080;
}
location ~ /\.ht {
deny all;
}
}
apache:
<VirtualHost *:8080>
ServerAdmin blah@blah.com
ServerName testdev.example.com
ServerAlias www.testdev.example.com testdev.example.com
DocumentRoot /srv/www/example.com/public_html/
ErrorLog /srv/www/example.com/logs/error.log
CustomLog /srv/www/example.com/logs/access.log combined
<IfModule mpm_itk_module>
AssignUserId webadmin www-data example
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
rewritecond %{http_host} ^www.testdev.example.com [nc]
rewriterule ^(.*)$ http://testdev.example.com$1 [r=301,nc,qsa]
</IfModule>
</VirtualHost>
Я слышал, что браузеры кешируют DNS для облегчения поиска .. бла-бла-бла. Но это реальная проблема, потому что пользователи могут упасть, если увидят пустую страницу.
Очистка кеша браузера решает проблему, но обычный пользователь этого не делает.
Кто-нибудь сталкивался с такой проблемой? Какие-либо предложения?
Спасибо Брайан
Вы полностью изменили свою среду (поставщик DNS, поставщик центра обработки данных и т. Д.). Я бы не стал смотреть на вашу конфигурацию nginx, потому что это слишком далеко от конечного пользователя при устранении неполадок с пустыми страницами.
Начните с возможности воспроизвести проблему и собрать данные. В Chrome или IE есть отличные инструменты разработчика (F12), которые позволят вам записывать все записи и их результаты, когда возникает проблема (IE даже позволяет вам записывать это в файл XML). Затем осмотрите, где что-то ломается, и оттуда работайте.
Да, я видел это со случайным сбросом соединений. Когда-то это был перегруженный брандмауэр. В другой раз был HTTP-сервер с неправильными настройками проверки активности. До бесконечности. Лучше отслеживать точную транзакцию со стороны конечного пользователя и работать оттуда.