[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
					
				| @ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Alexandre Flament
						Alexandre Flament