Веб-программа разрабатывается asp.net Core, браузер запрашивает страницу, и серверу необходимо пройти через обратный прокси nginx в .NET для обработки, и во время стресс-теста он сообщает ошибку 503:
Маршрут 503 временно недоступен 503 — это статус HTTP-кода, обусловленныйВременное обслуживание сервера или перегрузка — сервер в настоящее время не может обрабатывать запросы。 Это заболевание временное и будет восстановлено со временем.
В целом, ошибка 503 в основном связана с большим количеством посещений сайта, что приводит к ошибке, вызванной чрезмерным трафиком или большим количеством параллельных маршрутов.
Согласно анализу принципа барабана, существует множество факторов, вызывающих узкие места в производительности, прежде всего, ориентир настройки Linux таков:
С помощью профессиональных инструментов для тестирования давления результаты теста на давление следующие:
Настройка Nginx
worker_processes Установлен на автоматический, следующим образом:
Позвольте nginx автоматически адаптироваться под ваши нужды.
Места проведения событий следующие:
Используйте режим epoll для увеличения числа одновременных соединений, увеличения пропускной способности системы nginx и установки максимального количества соединений, которые работники могут открыть одновременно. Введение в документ:Вход по гиперссылке виден.
После настройки проводится испытание давлением, и ошибка 503 больше не наблюдается, как показано на рисунке ниже:
Если вы используете обратный прокси nginx для переадресации на php-fpm, вы можете получить следующую ошибку:
2022/01/16 16:08:01 [крит] 968#0: *12955 open() "/alidata/www/itsvse_web/50x.html" не получилось (24: слишком много открытых файлов), клиент: 100.116.153.2, сервер:www.itsvse.com, запрос: "GET /forum.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", хост: "www.itsvse.com" 2022/01/16 16:08:01 [предупреждение] 968#0: *12956 сокет() не сработал (24: слишком много открытых файлов) при подключении к upstream, клиент: 100.116.153.109, сервер:www.itsvse.com, запрос: "GET /forum.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", хост: "www.itsvse.com" 2022/01/16 16:08:01 [крит] 968#0: *12956 open() "/alidata/www/itsvse_web/50x.html" fail (24: Слишком много открытых файлов), клиент: 100.116.153.109, сервер:www.itsvse.com, запрос: "GET /forum.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", хост: "www.itsvse.com"
Задайте параметры worker_rlimit_nofile следующим образом:
Документация:Вход по гиперссылке виден.
(Конец)
|