Назад | Перейти на главную страницу

Как разрешить одновременное использование только одного пользователя в mod_wsgi и apache?

Я запускаю сервер на базе Python Flask на Apache/2.4.29 (Ubuntu) с помощью mod_wsgi на машине Amazon EC2 Ubuntu t2.micro бесплатного уровня с очень ограниченными ЦП и памятью.

Используя flask, я предоставляю свой API пользователям, и выполнение каждого запроса занимает около 5-6 секунд (моя задача требует интенсивного использования ЦП). Итак, теперь происходит следующее: если кто-то запускает 4-5 запросов за раз, загрузка ЦП увеличивается на 100% и машина останавливается до перезапуска. Я даже не могу получить доступ к журналам.

Поэтому я хочу ограничить одновременный прием только 1 запроса, чтобы он был завершен без каких-либо проблем с процессором (я не возражаю, чтобы другие запросы были отклонены)

Я пробовал несколько вещей:

  1. В документации mod_wsgi написано, что потоки могут быть ограничены до 1, как это WSGIDaemonProcess flaskproject threads=1, но даже после этого обслуживание разрешает несколько запросов. Вот мой файл conf.
<VirtualHost *:80 *:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        WSGIDaemonProcess flaskproject threads=1
WSGIScriptAlias / /var/www/html/flaskproject/app.wsgi

<Directory flaskproject>
        WSGIProcessGroup flaskproject
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
</Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  1. Я попытался получить доступ к журналам, чтобы узнать причину, по которой машина зависает со 100% ЦП, но после перезапуска машины файл журнала пуст.

Можно ли ограничить запросы или есть другой обходной путь, чтобы остановить зависание процессора? Я новичок в Apache и не уверен, в чем проблема.

Спасибо!