fix typos and grammar issues

This commit is contained in:
Sarah Hoffmann
2023-08-29 12:14:44 +02:00
parent 3794080327
commit cafd8e2b1e
15 changed files with 64 additions and 57 deletions

View File

@@ -1,16 +1,18 @@
# Deploying the Nominatim Python frontend
The Nominatim can be run as a Python-based web application. You have the
The Nominatim can be run as a Python-based
[ASGI web application](https://asgi.readthedocs.io/en/latest/). You have the
choice between [Falcon](https://falcon.readthedocs.io/en/stable/)
and [Starlette](https://www.starlette.io/) as the ASGI framework.
This section gives a quick overview on how to configure Nginx to server
This section gives a quick overview on how to configure Nginx to serve
Nominatim. Please refer to the documentation of
[Nginx](https://nginx.org/en/docs/) for background information on how to configure it.
[Nginx](https://nginx.org/en/docs/) for background information on how
to configure it.
!!! Note
Throughout this page, we assume that your Nominatim project directory is
located in `/srv/nominatim-project` and that you have installed Nominatim
Throughout this page, we assume your Nominatim project directory is
located in `/srv/nominatim-project` and you have installed Nominatim
using the default installation prefix `/usr/local`. If you have put it
somewhere else, you need to adjust the commands and configuration
accordingly.
@@ -21,7 +23,7 @@ Nominatim. Please refer to the documentation of
### Installing the required packages
The recommended way to deploy Python ASGI application is to run
The recommended way to deploy a Python ASGI application is to run
the ASGI runner (uvicorn)[https://uvicorn.org/]
together with (gunicorn)[https://gunicorn.org/] HTTP server. We use
Falcon here as the web framework.
@@ -38,7 +40,7 @@ virtualenv /srv/nominatim-venv
### Setting up Nominatim as a systemd job
Next you need to set up the application that serves Nominatim. This is
Next you need to set up the service that runs the Nominatim frontend. This is
easiest done with a systemd job.
Create the following file `/etc/systemd/system/nominatim.service`:
@@ -55,9 +57,9 @@ Environment="PYTHONPATH=/usr/local/lib/nominatim/lib-python/"
User=www-data
Group=www-data
WorkingDirectory=/srv/nominatim-project
ExecStart=/srv/nominatim-venv/bin/gunicorn -b unix:/run/nominatim.sock -w 14 -k uvicorn.workers.UvicornWorker nominatim.server.falcon.server:run_wsgi
ExecStart=/srv/nominatim-venv/bin/gunicorn -b unix:/run/nominatim.sock -w 4 -k uvicorn.workers.UvicornWorker nominatim.server.falcon.server:run_wsgi
ExecReload=/bin/kill -s HUP $MAINPID
StandardOutput=append:/ssd/nominatim/log/gunicorn.log
StandardOutput=append:/var/log/gunicorn-nominatim.log
StandardError=inherit
PrivateTmp=true
TimeoutStopSec=5
@@ -67,6 +69,11 @@ KillMode=mixed
WantedBy=multi-user.target
```
This sets up gunicorn with 4 workers (`-w 4` in ExecStart). Each worker runs
its own Python process using
[`NOMINATIM_API_POOL_SIZE`](../customize/Settings.md#nominatim_api_pool_size)
connections to the database to serve requests in parallel.
Make the new service known to systemd and start it:
``` sh