forked from Ponysearch/Ponysearch
[mod] /image_proxy: use HTTP/1 instead of HTTP/2
httpx: HTTP/2 is slow when a lot data is downloaded. https://github.com/dalf/pyhttp-benchmark also, the usage of HTTP/1 decreases the load average
This commit is contained in:
parent
43fcaa642a
commit
3b0f70ed0f
2 changed files with 11 additions and 5 deletions
|
@ -289,6 +289,14 @@ def initialize(settings_engines=None, settings_outgoing=None):
|
||||||
if isinstance(network, str):
|
if isinstance(network, str):
|
||||||
NETWORKS[engine_name] = NETWORKS[network]
|
NETWORKS[engine_name] = NETWORKS[network]
|
||||||
|
|
||||||
|
# the /image_proxy endpoint has a dedicated network.
|
||||||
|
# same parameters than the default network, but HTTP/2 is disabled.
|
||||||
|
# It decreases the CPU load average, and the total time is more or less the same
|
||||||
|
if 'image_proxy' not in NETWORKS:
|
||||||
|
image_proxy_params = default_params.copy()
|
||||||
|
image_proxy_params['enable_http2'] = False
|
||||||
|
NETWORKS['image_proxy'] = new_network(image_proxy_params)
|
||||||
|
|
||||||
|
|
||||||
@atexit.register
|
@atexit.register
|
||||||
def done():
|
def done():
|
||||||
|
|
|
@ -108,7 +108,7 @@ from searx.autocomplete import search_autocomplete, backends as autocomplete_bac
|
||||||
from searx.languages import language_codes as languages
|
from searx.languages import language_codes as languages
|
||||||
from searx.locales import LOCALE_NAMES, UI_LOCALE_CODES, RTL_LOCALES
|
from searx.locales import LOCALE_NAMES, UI_LOCALE_CODES, RTL_LOCALES
|
||||||
from searx.search import SearchWithPlugins, initialize as search_initialize
|
from searx.search import SearchWithPlugins, initialize as search_initialize
|
||||||
from searx.network import stream as http_stream
|
from searx.network import stream as http_stream, set_context_network_name
|
||||||
from searx.search.checker import get_result as checker_get_result
|
from searx.search.checker import get_result as checker_get_result
|
||||||
from searx.settings_loader import get_default_settings_path
|
from searx.settings_loader import get_default_settings_path
|
||||||
|
|
||||||
|
@ -1086,13 +1086,11 @@ def image_proxy():
|
||||||
'Sec-GPC': '1',
|
'Sec-GPC': '1',
|
||||||
'DNT': '1',
|
'DNT': '1',
|
||||||
}
|
}
|
||||||
|
set_context_network_name('image_proxy')
|
||||||
stream = http_stream(
|
stream = http_stream(
|
||||||
method = 'GET',
|
method = 'GET',
|
||||||
url = url,
|
url = url,
|
||||||
headers = request_headers,
|
headers = request_headers
|
||||||
timeout = settings['outgoing']['request_timeout'],
|
|
||||||
allow_redirects = True,
|
|
||||||
max_redirects = 20
|
|
||||||
)
|
)
|
||||||
resp = next(stream)
|
resp = next(stream)
|
||||||
content_length = resp.headers.get('Content-Length')
|
content_length = resp.headers.get('Content-Length')
|
||||||
|
|
Loading…
Reference in a new issue