mirror of
https://github.com/searxng/searxng.git
synced 2024-12-14 13:26:29 +00:00
bd3f526859
* Docker: add UWSGI_WORKERS and UWSGI_THREAD. UWSGI_WORKERS specifies the number of process. UWSGI_THREADS specifies the number of threads. The Docker convention is to specify the whole configuration through environment variables. While not done in SearXNG, these two additional variables allows admins to skip uwsgi.ini In additional, https://github.com/searxng/preview-environments starts Docker without additional files through searxng-helm-chat. Each instance consumes 1Go of RAM which is a lot especially when there are a lot of instances / pull requests. * [scripts] add environments UWSGI_WORKERS and UWSGI_THREADS - UWSGI_WORKERS specifies the number of process. - UWSGI_THREADS specifies the number of threads. Templates for uwsgi scripts can be tested by:: UWSGI_WORKERS=8 UWSGI_THREADS=9 \ ./utils/searxng.sh --cmd\ eval "echo \"$(cat utils/templates/etc/uwsgi/*/searxng.ini*)\""\ | grep "workers\|threads" Signed-off-by: Markus Heiser <markus.heiser@darmarit.de> --------- Signed-off-by: Markus Heiser <markus.heiser@darmarit.de> Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
87 lines
2.1 KiB
Text
87 lines
2.1 KiB
Text
# -*- mode: conf; coding: utf-8 -*-
|
|
[uwsgi]
|
|
|
|
# uWSGI core
|
|
# ----------
|
|
#
|
|
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core
|
|
|
|
# Who will run the code / Hint: in emperor-tyrant mode uid & gid setting will be
|
|
# ignored [1]. Mode emperor-tyrant is the default on fedora (/etc/uwsgi.ini).
|
|
#
|
|
# [1] https://uwsgi-docs.readthedocs.io/en/latest/Emperor.html#tyrant-mode-secure-multi-user-hosting
|
|
#
|
|
uid = ${SERVICE_USER}
|
|
gid = ${SERVICE_GROUP}
|
|
|
|
# set (python) default encoding UTF-8
|
|
env = LANG=C.UTF-8
|
|
env = LANGUAGE=C.UTF-8
|
|
env = LC_ALL=C.UTF-8
|
|
|
|
# chdir to specified directory before apps loading
|
|
chdir = ${SEARXNG_SRC}/searx
|
|
|
|
# SearXNG configuration (settings.yml)
|
|
env = SEARXNG_SETTINGS_PATH=${SEARXNG_SETTINGS_PATH}
|
|
|
|
# disable logging for privacy
|
|
disable-logging = true
|
|
|
|
# The right granted on the created socket
|
|
chmod-socket = 666
|
|
|
|
# Plugin to use and interpreter config
|
|
single-interpreter = true
|
|
|
|
# enable master process
|
|
master = true
|
|
|
|
# load apps in each worker instead of the master
|
|
lazy-apps = true
|
|
|
|
# load uWSGI plugins
|
|
plugin = python3,http
|
|
|
|
# By default the Python plugin does not initialize the GIL. This means your
|
|
# app-generated threads will not run. If you need threads, remember to enable
|
|
# them with enable-threads. Running uWSGI in multithreading mode (with the
|
|
# threads options) will automatically enable threading support. This *strange*
|
|
# default behaviour is for performance reasons.
|
|
enable-threads = true
|
|
|
|
# Number of workers (usually CPU count)
|
|
workers = ${UWSGI_WORKERS:-%k}
|
|
threads = ${UWSGI_THREADS:-4}
|
|
|
|
# plugin: python
|
|
# --------------
|
|
#
|
|
# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#plugin-python
|
|
|
|
# load a WSGI module
|
|
module = searx.webapp
|
|
|
|
# set PYTHONHOME/virtualenv
|
|
virtualenv = ${SEARXNG_PYENV}
|
|
|
|
# add directory (or glob) to pythonpath
|
|
pythonpath = ${SEARXNG_SRC}
|
|
|
|
|
|
# speak to upstream
|
|
# -----------------
|
|
|
|
socket = ${SEARXNG_UWSGI_SOCKET}
|
|
buffer-size = 8192
|
|
|
|
# uWSGI serves the static files and in settings.yml we use::
|
|
#
|
|
# ui:
|
|
# static_use_hash: true
|
|
#
|
|
static-map = /static=${SEARXNG_STATIC}
|
|
# expires set to one day
|
|
static-expires = /* 86400
|
|
static-gzip-all = True
|
|
offload-threads = %k
|