5.9 KiB
NGINX
This section explains how to set up a SearXNG instance using the HTTP server nginx. If you have used the installation scripts
and do not have any special preferences you can install the SearXNG site <nginx searxng site>
using searxng.sh <searxng.sh overview>
:
sudo -H ./utils/searxng.sh install nginx $
If you have special interests or problems with setting up nginx, the following section might give you some guidance.
further reading
The nginx HTTP server
If nginx is not installed, install it now.
Ubuntu / debian
sudo -H apt-get install nginx
Arch Linux
sudo -H pacman -S nginx-mainline
sudo -H systemctl enable nginx
sudo -H systemctl start nginx
Fedora / RHEL
sudo -H dnf install nginx
sudo -H systemctl enable nginx
sudo -H systemctl start nginx
Now at http://localhost you should see a Welcome to nginx! page, on Fedora you see a Fedora Webserver - Test Page. The test page comes from the default nginx server configuration. How this default site is configured, depends on the linux distribution:
Ubuntu / debian
less /etc/nginx/nginx.conf
There is one line that includes site configurations from:
include /etc/nginx/sites-enabled/*;
Arch Linux
less /etc/nginx/nginx.conf
There is a configuration section named server
:
server {
listen 80;
server_name localhost;
# ...
}
Fedora / RHEL
less /etc/nginx/nginx.conf
There is one line that includes site configurations from:
include /etc/nginx/conf.d/*.conf;
NGINX's SearXNG site
Now you have to create a configuration file (searxng.conf
) for the SearXNG site. If nginx is new to you, the nginx beginners guide is a good starting point and the Getting Started wiki is always a good resource to keep in the pocket.
Depending on what your SearXNG installation is listening on, you need a http or socket communication to upstream.
socket
$DOCS_BUILD/includes/searxng.rst
http
$DOCS_BUILD/includes/searxng.rst
The installation scripts
installs the reference setup
<use_default_settings.yml>
and a uwsgi setup
that listens on a socket by default.
Ubuntu / debian
Create configuration at /etc/nginx/sites-available/
and place a symlink to sites-enabled
:
sudo -H ln -s /etc/nginx/sites-available/searxng.conf \
/etc/nginx/sites-enabled/searxng.conf
Arch Linux
In the /etc/nginx/nginx.conf
file, in the server
section add a include directive:
server {
# ...
include /etc/nginx/default.d/*.conf;
# ...
}
Create two folders, one for the available sites and one for the enabled sites:
mkdir -p /etc/nginx/default.d
mkdir -p /etc/nginx/default.apps-available
Create configuration at /etc/nginx/default.apps-available
and place a symlink to default.d
:
sudo -H ln -s /etc/nginx/default.apps-available/searxng.conf \
/etc/nginx/default.d/searxng.conf
Fedora / RHEL
Create a folder for the available sites:
mkdir -p /etc/nginx/default.apps-available
Create configuration at /etc/nginx/default.apps-available
and place a symlink to conf.d
:
sudo -H ln -s /etc/nginx/default.apps-available/searxng.conf \
/etc/nginx/conf.d/searxng.conf
Restart services:
Ubuntu / debian
sudo -H systemctl restart nginx
sudo -H service uwsgi restart searxng
Arch Linux
sudo -H systemctl restart nginx
sudo -H systemctl restart uwsgi@searxng
Fedora / RHEL
sudo -H systemctl restart nginx
sudo -H touch /etc/uwsgi.d/searxng.ini
Disable logs
For better privacy you can disable nginx logs in /etc/nginx/nginx.conf
.
http {
# ...
access_log /dev/null;
error_log /dev/null;
# ...
}