Как изменить время ожидания по умолчанию для подключения к интернету?

Аннотация

Когда Internet Explorer устанавливает постоянное http-соединение с веб-сервером (с помощью заготавливателей), Internet Explorer повторно использует тот же розеток TCP/IP, который использовался для получения первоначального запроса, пока розетка не простаивает в течение одной минуты. После простоя подключения в течение одной минуты Internet Explorer сбрасывает подключение. Новый розет TCP/IP используется для получения дополнительных запросов. Может потребоваться изменить значение HTTP в Internet Explorer.

Если браузер клиента (Internet Explorer) или веб-сервер имеет более низкое значение, это является ограничивающим фактором. Например, если клиент имеет двухминутный перерыв времени, а веб-сервер — один минутный, максимальный период времени — одна минута. Ограничивающим фактором может быть клиент или сервер.

По умолчанию internet Explorer имеет значение одной минуты и дополнительный ограничивающий коэффициент () двух минут. Любой параметр может привести к сбросу розетки internet Explorer.

Дополнительные функции uWSGI

uWSGI предоставляет множество других функций, которые решают общие проблемы, с которыми сталкиваются разработчики сервисов. Использование этих функций может снизить общую сложность системы по сравнению с внешними решениями.

Cron/Timer

Главный процесс uWSGI может управлять периодическим выполнением произвольного кода. Это полезная альтернатива ручному управлению другим процессом.

  • Таймеры могут переодически выполнять код с заданным интервалом, начинающимся при запуске службы.
  • Cron выполняют код в указанную минуту, час, день и т. д.
  • Доступна специальная версия этих функций unique, чтобы гарантировать, что ранее запущенные timers/cron не будут запускаться, пока не завершиться предыдущий экземпляр.
import uwsgi
from . import do_some_work

def periodic_task(signal: int):
    print(f"Received signal {signal}")
    do_some_work()

# выполнять каждые 20 минут на первом доступном worker
uwsgi.add_timer(99, 1200)  
# исполнять на 20-й минуте каждого часа, каждый день,
# минута, час, день, месяц, день недели
uwsgi.add_cron(99, 20, -1, -1, -1, -1)


Эти функции также доступны в качестве декораторов из модуля uwsgidecorators:

import uwsgidecorators

@uwsgidecorators.timer(1200)
def periodic_task(signal: int):
    print(f"Received signal {signal}")
    do_some_work()

Обратите внимание, что модули uwsgi и uwsgidecorators внедряются в среду выполнения при запуске службы с помощью uWSGI. Этот импорт завершится неудачно при запуске в обычном интерпретаторе Python, поэтому вам может понадобиться написать более защищенный код:

try:
    import uwsgi
    import uwsgidecorators
except ImportError:
    UWSGI_ENABLED = False
    uwsgi = uwsgidecorators = None
else:
    UWSGI_ENABLED = True
    
if UWSGI_ENABLED:
    pass  # do uWSGI only logic here


Также обратите внимание, что этот модуль не обеспечивает поддержку таймеров одноразового использования, они повторяют события. Обратитесь к модулю для одноразовых таймеров

Locks

Модуль Python uWSGI экспортирует функции lock и unlock (к сожалению, без менеджера контекста — context manager) для управления синхронизацией критических разделов между процессами workers.

import uwsgi

def critical_code():
    uwsgi.lock()
    do_some_important_stuff()
    uwsgi.unlock()

Cache system

Главный процесс uWSGI может предоставить кеш в памяти для совместного использования workers, который способен хранить простые байтовые строки с ключом.

Пример создания кэша с размером ключа 20 байтов и значением 8 байтов:

--cache2 name=mycache,items=150000,blocksize=8,keysize=20

Будьте осторожны: ключи или значения, которые слишком велики для кэша, не смогут быть вставлены в кеш и у них не будет ошибок для данной операции.

Пример использования Python API:

import uwsgi  # опять же, работает только в контексте активного процесса UWSGI

uwsgi.cache_set(key, value, timeout)
uwsgi.cache_get(key)

uwsgi.cache_inc(key, amount)  # atomic increments!
uwsgi.cache_dec(key, amount)


Mules

uWSGI mules — это дополнительные процессы, предназначенные для асинхронной обработки задач от workers, обслуживающих запросы.

Вы можете запустить один процесс с —mule и отправить ему задачи в своем коде Python:

from uwsgidecorators import timer

@timer(60, target="mule")  # выполнять эту функцию каждую минуту на доступном mule
def do_some_work(signak: int) -> None:
    pass


Так же существует декоратор mstimer для запуска таймеров с точностью до миллисекунды.

Пример назначения функции в foo.py для постоянного запуска mule:

import uwsgi

def loop():
    while True:
        msg = uwsgi.mule_get_msg()  # blocks until a uwsgi worker sends a message
        print(f"Got a message: {msg}")
        
if __name__ == '__main__':
        loop()

Затем добавьте —mule=foo.py к команде запуска uWSGI.

Вы можете отправлять сообщения мулам с помощью API uwsgi.mule_msg

Обратите внимание, что сообщения должны быть байтовыми литералами

Общие настройки

max_connections=64 — устанавливаем параметр минимальным возможным при необходимости экономить ресурсы сервера, при возникновении в логе записей вида «Too many connections…» увеличиваем значение. Не следует изменять значение этого параметра на старте. 4000 клиентов является максимумом. Можно довести максимальное количество клиентов до 7000, но для стандартных сборок 4000 является пределом.

open_files_limit = 2048 Устанавливать значение стоит опираясь на существующее количество открытых файлов MySQL:

В конфигурационном файле задается большее значение.

connect_timeout (MySQL pre-5.1.23: default 5, MySQL 5.1.23+: default 10) — количество секунд по прошествии которых сервер баз данных будет выдавать ошибку, при активном веб-сервере значение можно уменьшать чтобы увеличить скорость работы, на медленной машине — можно увеличивать. max_connect_errors (default 10) — максимальное количество единовременных соединений с сервером баз данных с хоста запрос блокируется если он прерывается запросами с того же хоста до момента окончания обработки запроса) блокируются навсегда, очистить можно только из командной оболочки MySQL:

В случае атаки на сервер нужно уменьшать (5) чтобы отсекать попытки соединения, при большой активности веб-сервера можно увеличивать max_allowed_packet (default 1M) — максимальный для буфера соединений и буфера результата при исполнении SQL инструкций. Каждый тред имеет свой буфер. Хорошим значением для начала будет 16М. tmp_table_size (system-specific default) — максимальный размер памяти выделяемой под хранение временных таблиц. 16М — довольно много.

Примеры готовых конфигураций для разных объёмов памяти можно посмотреть здесь.

Чтобы посомореть значения переменных можно воспользоваться SQL запросом:

или для конкретных переменных:

Чтобы проверить мониториг InnoDB, используте:

Чтобы узнать, не свопается ли память, используйте команду и смотрите строку swap:

Что делать, если меню GRUB не появляется:

Если меню GRUB не отображается при загрузке компьютера, возможно, оно скрыто. Если вы используете устаревшую версию BIOS, вы можете отобразить ее, нажав несколько раз клавишу Shift при загрузке. Если вы используете UEFI, нажмите Esc. Это покажет меню GRUB один раз.

На нашем устройстве Ubuntu при проверке файла конфигурации GRUB /etc/default/grub дополнительная строка скрывает меню GRUB. Чтобы постоянно отображать меню GRUB, следующая строка:

GRUB_TIMEOUT_STYLE=hidden

Необходимо изменить, как показано на скриншоте ниже, на:

GRUB_TIMEOUT_STYLE=menu

Затем вы можете отредактировать ранее упомянутую строку, чтобы изменить время ожидания. Например, чтобы изменить время ожидания с 5 до 10 секунд, отредактируйте следующую строку.

И измените его на:

GRUB_TIMEOUT=10

Затем закройте nano с сохранением изменений ( Ctrl + X ).

Теперь вам нужен GRUB, чтобы применить сделанные вами изменения. Для этого вам необходимо обновить GRUB. Чтобы обновить GRUB, выполните следующую команду.

sudo update-grub

При перезагрузке меню GRUB будет оставаться в течение 10 секунд или числа, которое вы указали в строке, содержащей GRUB_TIMEOUT =.

Что такое GRUB и как он работает:

GRUB (Grand Unified Bootloader) – это загрузчик, который позволяет пользователю выбирать ядро, ОС или режим загрузки. Поскольку BIOS не распознает файловые системы, эта задача передается загрузчику, который загружает файлы в ОЗУ.

Grub – это первая программа, которая запускается, когда пользователь включает свой компьютер. Задача загрузчика – загрузить правильную операционную систему или ядро ​​до инициализации системы.

В этом случае загрузчик или GRUB находится в MBR (Master Boot Record). MBR – это сектор жесткого диска или раздела, содержащий информацию о файловых системах и разделах, а также о загрузчике. Grub также совместим с системами BSD (FreeBSD, NetBSD, OpenBSD); другие ядра поддерживаются через цепную загрузку.

Дополнительную информацию о GRUB можно получить по адресу https://www.gnu.org/software/grub/ или https://www.gnu.org/software/grub/manual/grub/grub.html.

Настройка опций в файле .htaccess

Директивы необходимо добавлять в самый конец или в самое начало файла, вне блоков кода <IfModule>…</IfModule>.

apc.cache_by_default

APC — акселератор PHP, использование которого увеличивает производительность интерпретатора за счет кэширования. В отдельных случаях, однако, может потребоваться его отключение — например, если скрипты не выполняются корректно из-за переполнения кэша.

Управление APC осуществляется директивами:

php_flag apc.cache_by_default on

php_flag apc.cache_by_default off

default_charset

Директива указывает кодировку по умолчанию (например, cp1251, utf-8, koi8-r) для всех выдаваемых страниц.

AddDefaultCharset cp1251
php_value default_charset cp1251

display_errors

Директива указывает, требуется ли выводить ошибки на экран вместе с остальным выводом, либо ошибки должны быть скрыты от пользователя.

Включение и выключение осуществляются следующим образом:

php_value display_errors 0

php_value display_errors 1

log_errors

Опция позволяет включить логирование ошибок php с их записью в произвольный файл (в примере errors.log). При указании пути к файлу замените u и user на первую букву вашего логина и сам логин.

php_value log_errors on
php_value error_log /home/u/user/путь_к_файлу/errors.log

magic_quotes_gpc

Волшебные кавычки (Magic Quotes) — это процесс автоматического экранирования входящих данных PHP-скрипта. Если опция включена, то одинарные (‘) и двойные («) кавычки  и обратный слэш (\)экранируются обратным слэшем автоматически.

Включение и выключение magic_quotes осуществляется директивами:

php_flag magic_quotes_gpc on

php_flag magic_quotes_gpc off

mail.add_x_header

Опция позволяет включить логирование отправки почты из скриптов сайта. Логи будут содержать полный путь до скрипта, адрес получателя и заголовки. При указании пути к файлу, в который будут записываться логи (mail.log), замените u и user на первую букву вашего логина и сам логин.

php_value mail.add_x_header 1
php_value mail.log /home/u/user/public_html/mail.log

max_input_vars

Директива указывает, сколько входных переменных может быть принято в одном запросе. Например:

php_value max_input_vars 11000

mbstring.func_overload и mbstring.internal_encoding

Для корректной работы сайтов на старых версиях CMS Битрикс (до v20.100.0) требуются следующие параметры:

php_value mbstring.func_overload 2
php_value mbstring.internal_encoding UTF-8

Отключение OpCache (настройка требуется для CMS Битрикс):

php_value opcache.revalidate_freq 0

Устанавливает лимит на рекурсию.

php_value pcre.recursion_limit 14000

post_max_size

Опция устанавливает максимально допустимый размер данных, отправляемых методом POST. Также это значение также влияет на загрузку файлов — для загрузки больших файлов оно должно быть больше значения директивы upload_max_filesize.

php_value post_max_size 40M

register_globals

Директивы для включения/выключения глобальных переменных:

php_flag register_globals on

php_flag register_globals off

request_order

Директива регулирует порядок, в котором PHP добавляет переменные GET, POST и Cookie в массив _REQUEST.

php_value request_order GPC

Полный конфиг

strict = true
master = true
enable-threads = true
vacuum = true                        ; Удалить sockets во время выключения
single-interpreter = true
die-on-term = true                   ; Отключение при получении SIGTERM (по умолчанию перегрузка)
need-app = true

disable-logging = true               ; Отключение встроенного логирования
log-4xx = true                       ; но включение для 4xx
log-5xx = true                       ; и 5xx

harakiri = 60                        ; насильственно уничтожение  workers через 60 секунд
py-callos-afterfork = true           ; позволяют workers получать сигналы

max-requests = 1000                  ; Перезапуск workers после этого количества запросов
max-worker-lifetime = 3600           ; Перезапуск workers через указанного количества секунд
reload-on-rss = 2048                 ; Перезапуск workers после потребление указанного количества памяти
worker-reload-mercy = 60             ; Время ожидания перед удалением workers

cheaper-algo = busyness
processes = 128                      ; Разрешенное максимальное количество workers
cheaper = 8                          ; Минимальное количество  worker
cheaper-initial = 16                 ; Workers созданные во время старта
cheaper-overload = 1                 ; Продолжительность цикла в секундах
cheaper-step = 16                    ; Количество workers при из порождение

cheaper-busyness-multiplier = 30     ; Сколько циклов ждать, прежде чем убивать workers
cheaper-busyness-min = 20            ; Ниже этого порога убивать workers (если стабильно для множителя циклов)
cheaper-busyness-max = 70            ; Выше этого порога порождать новых workers
cheaper-busyness-backlog-alert = 16  ; Порождать аварийных workers, если в очереди ожидает больше этого количества запросов
cheaper-busyness-backlog-step = 2    ; Количество аварийных workers, если в очереди слишком много запросов

ЗАКЛЮЧИТЕЛЬНЫЙ ОТВЕТ

Если ваш провайдер не будет обновлять openSSL до TLS 1.2, вам следует серьезно подумать о другом провайдере. Вы должны проверить свой сервер с помощью ссылки «SSL SERVER TEST» ниже. Ваш сервер, вероятно, имеет уязвимости безопасности SSL.

Сервер, к которому вы пытаетесь подключиться, поддерживает только TLS 1.2 и TLS 1.1 Не поддерживает: TLS 1.0, SSL 3, SSL2.

Когда выполняется запрос SSL, как часть протокола SSL, curl представляет список шифров на хост-сервер. Затем сервер выбирает, какой протокол шифрования использовать, основываясь на списке, представленном curl.

Хост, к которому вы пытаетесь подключиться, поддерживает эти наборы шифров

Поскольку ваш openSSL был выпущен в июле 2008 года, а TLSv1.2 был выпущен в следующем месяце, августе 2008 года, лучшим вариантом будет TLSv1.1

Дополнительная информация

Важно!

В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения о том, как создать и восстановить реестр, см. в дополнительных сведениях о том, как создать и восстановить реестр в окне.

Возможно, вам придется увеличить значение времени ожидания по умолчанию для постоянных подключений HTTP в Internet Explorer, если вы используете веб-программу, которая должна общаться с Internet Explorer через тот же TCP/IP-розет после одной минуты простоя. Чтобы изменить значение времени ожидания по умолчанию для сохраняющихся подключений HTTP в Internet Explorer, добавьте значение DWORD, названное в следующем ключе реестра, а затем установите его данные значения до времени (в миллисекунд), которое необходимо подождать internet Explorer перед сбросом простоя подключения:

Чтобы изменить значение времени по умолчанию для постоянных подключений HTTP в Internet Explorer, выполните следующие действия:

  1. Щелкните Пуск, затем Выполнить и введите regedit. Затем нажмите ОК.

  2. Найдите и нажмите следующий ключ в реестре:

  3. В меню Правка выберите пункт Создать, а затем Параметр DWORD.

  4. Введите KeepAliveTimeout и нажмите кнопку ENTER.

  5. В меню Правка щелкните Изменить.

  6. Введите соответствующее значение времени (в миллисекунах), а затем нажмите кнопку ОК. Например, чтобы установить значение времени до двух минут, введите 120000 .

  7. Перезапуск браузера Internet Explorer Если значение не превышает 60 000 (одна минута), могут возникнуть проблемы с общением с веб-серверами, которые требуют постоянных подключений HTTP. Например, вы можете получить сообщение об ошибке, которое не отображается на странице.

Если у вас должно быть значение выше 120000 (две минуты), необходимо создать дополнительный ключ реестра и установить его значение, равное нужному значению. Дополнительный ключ реестра . Это DWORD со значением (в миллисекунах) и в том же расположении, что и .

Например, чтобы использовать трехминутное значение, необходимо создать следующие клавиши реестра:

По умолчанию HTTP 1.1 включен в Internet Explorer, за исключением случаев, когда вы устанавливаете подключение http через прокси-сервер. При включении HTTP 1.1 подключения HTTP остаются открытыми (или настойчивыми) по умолчанию, пока подключение не будет простаивать в течение одной минуты или до тех пор, пока не будет достигнуто значение, указанное значением в реестре. Параметры HTTP 1.1 можно изменить в Internet Explorer с помощью вкладки Advanced в диалоговом окне Параметры Интернета.

ПРЕДЫДУЩАЯ УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ ПОД ЭТУ ТОЧКОЙ

Первое, что я делаю, это отключаю JavaScript в браузере. Если я могу получить страницу с помощью браузера без JavaScript, я ЗНАЮ, что могу получить ее с помощью PHP.

Я строю запрос, чтобы он выглядел точно так же, как в браузере. Я перехожу на вкладку «Сеть» Инспектора и редактирую заголовок запроса и копирую его, вставляя в мой код.

Инициализация скручивания

Добавьте параметры запроса

Скажите curl включить заголовки

Вернуть ответ

Следите за перенаправлениями Перенаправления могут быть ловушкой. Возможно, вам не придется следить и анализировать ответ. Часто перенаправления существуют, чтобы установить куки.

Позвольте завитку справиться со сжатием

Установить параметры времени ожидания

[2] Наследование

Separately Изменить глобальное интерактивное время ожидания отдельно

Просмотрите значения глобальной переменной и переменной сеанса отдельно:

проанализировать, как показано ниже:

В интерактивном режиме interactive_timeout на сеансовом и глобальном уровнях наследует значение global_timeout global. Значение wait_timeout уровня сеанса наследует interactive_timeout. Время ожидания на глобальном уровне не затрагивается.

② Установить уровень сеанса

проанализировать, как показано ниже:

Независимо от того, влияет ли значение атрибута interactive_timeout на глобальном уровне или на уровне сеанса wait_timeout.

③ Установите глобальное значение одновременно и разные

Просмотр значений глобальной переменной:

Просмотр значений переменных сеанса:

проанализировать, как показано ниже:

Wait_timeout на уровне сеанса наследует значение interactive_timeout на глобальном уровне. Время ожидания на глобальном уровне не затрагивается. Не изменяя значение interactive_timeout, измените значение wait_timeout, результат недействителен.

Выше приведен результат теста интерактивного соединения: wait_timeout интерактивного соединения наследуется от глобального interactive_timeout.

Результат неинтерактивного подключения выглядит следующим образом: wait_timeout неинтерактивного подключения наследуется от глобального wait_timeout.

ОБНОВЛЕНИЕ ВТОРОЕ

Хорошие новости

Я знаю проблему и смог повторить ошибки, которые вы получили.

ПРИМЕЧАНИЕ xxx был сайтом по указанной вами ссылке, вы можете удалить это сообщение сейчас.

Забавно, у меня один сервер я не обновляю. И, к счастью, у него была та же версия openSSL с июля 2008 года.

Вам необходимо обновить ваш openSSL. Также file_get_contents () не удалось на этом сервере тоже. Он работал над версией openSSL в феврале 2013 года, а также в июне 2014 года.

Я не могу сказать, нужно ли обновлять что-либо еще, например, функции, которые используют openSSL, могут (или не могут) обновляться.

Я иду с пословицей, если она не сломана, не чините ее. Я действительно считаю, что некоторые обновления на самом деле являются более низкими. Я все еще на XP. Но он сломался, и вам нужно это исправить.

По крайней мере, это не выстрел в темноте. Я уверен, что вы должны обновить. Это была методическая процедура устранения неполадок, которая смогла дублировать ваши ошибки. Вы также можете вернуться к использованию .

[3] Исключение проекта и настройка значения

В проекте используется программа для подключения к базе данных, поэтому она относится к неинтерактивному соединению, и вам необходимо сосредоточиться на том, как установить значение wait_timeout.

Общие проблемы заключаются в следующем:

① The last packet successfully received from the server was 23,579 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago. Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

② MySQL server has gone away

Настройка значения

Значение по умолчанию wait_timeout составляет 28800, и размер должен быть определен в соответствии с проектом. Wait_timeout слишком велик и имеет свои недостатки. Его проявлением является то, что большое количество процессов SLEEP в MySQL не может быть выпущено вовремя. Если он слишком мал, легко столкнуться с такими проблемами, как отключение сервера MySQL и ожидание тупика.

Несколько решений для тайм-аута функции file_get_contents в PHP

http-equiv=»Content-Type» content=»text/html;charset=UTF-8″>yle=»margin-bottom:5px;»>Теги:  php

При использовании функции file_get_contents часто возникает ситуация тайм-аута. Здесь вы должны проверить сообщение об ошибке, чтобы увидеть, какой тип ошибки, чаще встречается тайм-аут чтения. В этом случае вы можете попытаться избежать его некоторыми методами. Или решить.

Вот два кратких введения:

1

Увеличьте лимит тайм-аута

Обратите внимание: set_time_limit служит только для установки времени ожидания вашей PHP-программы, а не времени ожидания функции file_get_contents для чтения URL.

Сначала я подумал, что set_time_limit также может влиять на file_get_contents, но после тестирования он недействителен. Чтобы действительно изменить задержку file_get_contents, вы можете использовать параметр timeout ресурса $ context:

 

2. Если есть задержка один раз, попробуйте еще несколько раз.

Иногда сбой вызван такими факторами, как сеть, решения не существует, но вы можете изменить программу, повторить попытку несколько раз в случае сбоя и по-прежнему сдаваться после сбоя, поскольку file_get_contents () вернет FALSE в случае сбоя, поэтому вы можете написать код следующим образом:

Интеллектуальная рекомендация

1. Для реальных сигналов (для понимания): A (ω) является соотношением амплитуды выходного сигнала и амплитуды входного сигнала, называемого частотой амплитуды. Φ (ω) — это разница межд…

Один. вести Многие люди задавали некоторые вопросы о создании проекта Flex + LCDS (FDS) в сообщениях и группах. Из-за операции ее трудно четко объяснить, поэтому я написал простой учебник (я обещал эт…

package com.example.phonehttp; import android.os.Bundle; import android.os.Handler; import android.app.Activity; import android.widget.ScrollView; import android.widget.TextView; public class MainActi…

Он предназначен для реализации подкласса того же родительского класса с родительским классом. Полиморфизм Один и тот же ссылочный тип использует разные экземпляры для выполнения разных операций; Идея …

тема: Объедините два упорядоченных слоя в новый заказанный список и возврат. Новый список состоит из всех узлов двух связанных списков, данных сплавным. Пример: Анализ: два связанных списка состоит в …

Вам также может понравиться

D. Самая ценная строка Пример ввода 2 2 aa aaa 2 b c Образец вывода aaa c На самом деле, будучи задетым этим вопросом, вы должны быть осторожны. После инвертирования строки, если две строки имеют один…

Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of each cell becomes the average gray scale (rounding down) of all the 8 surro…

calc () может быть очень незнакомым для всех, и трудно поверить, что calc () является частью CSS. Поскольку он выглядит как функция, почему он появляется в CSS, поскольку это функция? Этот момент такж…

Основываясь на дереве регрессии, сформированном CART, а также на предварительной и последующей обрезке дерева, код выглядит следующим образом:…

Откат Обновление в режиме онлайн с версии Centos (CentOS Linux версии 7.3.1611 (Core) до CentOS Linux версии 7.5.1804 (Core)) # ошибка соединения yum-ssh после обновления yexpected key exchange group …

Заключение

uWSGI находится в уникальном положении с точки зрения богатства функций, которые он предоставляет, а также неожиданности своих настроек по умолчанию. По умолчанию потоки отключены, сигналы игнорируются или обрабатываются за пределами спецификации, и т.д. Обнаружение этих поведенческих особенностей в лучшем случае приведет к потере времени разработчика а в худшем случае к простоям производства. Настройка uWSGI, чтобы избежать этих проблем, является ответственным делом. Но после изучения всех этих особенностей, впечатляющий набор функций uWSGI может быть использован для создания приложений надежным и эффективным способом. Mules, таймеры, подсистемы кэширования и ведения журналов логов позволяет обеспечивать нужной функциональностью без задействования дополнительных внешних компонентов. Использование решений, предоставляемых uWSGI, позволяет разработчикам развертывать эти компоненты в простой конфигурации, упрощая развертывание и общую сложность системы.

Оригинальная статья: Configuring uWSGI for Production Deployment

Spread the love

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: