504 плохих шлюза с Nginx

У меня есть приложение J2EE, размещенное на VPS-сервере Linux. Я использую nginx в качестве веб-сервера и tomcat6 в качестве сервера приложений. Время от времени сайт продолжает загружаться, а иногда даже выдает ошибку 504 bad gateway nginx. Во время этого простоя в несколько минут (обычно 3-5 минут), если я пытаюсь получить доступ к серверу через SSH, я получаю ошибку тайм-аута соединения. Когда через несколько минут сайт начинает работать, я заметил, что tomcat, nginx по-прежнему работают с тем же идентификатором процесса, что и раньше. Мне не нужно перезагружать tomcat или nginx, он начинает работать сам по себе. Также, как только сайт снова запустится, я также заметил, что SSH-соединение с сервером также будет успешным.

Я не уверен, где именно проблема лежит? Это проблема с сервером или какая-то ошибка в моей конфигурации? Любые идеи будут оценены.

1 ответ

Решение

Вы используете Xen VPS с 1 ГБ ОЗУ и 2 ГБ подкачки, и у вашего провайдера VPS такое же соотношение ОЗУ и подкачки для всех остальных клиентов, включая 256 МБ подкачки для 128 МБ ОЗУ для клиентов на самом низком уровне.

Это может показаться очень высоким отношением свопа к оперативной памяти для хостера VPS, особенно если они предлагают более низкие уровни, такие как 128 МБ ОЗУ с 256 МБ подкачки, которые неизменно исчерпывают ОЗУ все время при использовании ничего не подозревающими начинающими пользователями.

Может показаться, что ошибка Bad Gateway, которую вы получаете, вызвана слишком большой задержкой ответа вашего приложения J2EE, которая может быть вызвана всем происходящим обменом.

Лучше всего проверить производительность сервера. Вы, вероятно, должны начать с запуска dd для проверки пропускной способности диска, а затем какой-то инструмент UNIX сравнительный анализ.

Другие вопросы по тегам