From c546206c3a146547bc84ff300389945062e93665 Mon Sep 17 00:00:00 2001 From: Matthew Hawkins Date: Wed, 12 Jul 2017 12:08:26 +1000 Subject: [PATCH] Add example using nginx + uwsgi Supplemental instructions on using uwsgi as the app host. --- docs/installation/web-server.md | 62 +++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/docs/installation/web-server.md b/docs/installation/web-server.md index 9da487f13..4b0fb0b88 100644 --- a/docs/installation/web-server.md +++ b/docs/installation/web-server.md @@ -133,5 +133,67 @@ Then, restart the supervisor service to detect and run the gunicorn service: At this point, you should be able to connect to the nginx HTTP service at the server name or IP address you provided. If you are unable to connect, check that the nginx service is running and properly configured. If you receive a 502 (bad gateway) error, this indicates that gunicorn is misconfigured or not running. +# nginx + uwsgi installation + +uwsgi is an alternative to using gunicorn + supervisord. It has native proxy support via the WSGI protocol in nginx. + +```no-highlight +# apt-get install uwsgi uwsgi-plugin-python3 +``` + +Add a site to uwsgi in `/etc/uwsgi/apps-available/netbox.ini`: + +```ini +[uwsgi] +chdir = /var/www/netbox/netbox +stats = 127.0.0.1:9191 +wsgi-file = netbox/wsgi.py +master = true +processes = 4 +threads = 2 +uid = www-data +socket = /run/uwsgi/netbox.sock +chown-socket = www-data:www-data +chmod-socket = 660 +vacuum = true +``` + +Symlink it in `/etc/uwsgi/apps-enabled`: + +```no-highlight +# cd /etc/uwsgi/apps-enabled +# ln -s ../apps-available/netbox.ini . +``` + +For the nginx site setup in `/etc/nginx/sites-available/netbox`, a minimal example is: + +```nginx +server { + listen 443 ssl default_server; + listen [::]:443 ssl default_server; + ssl_certificate /etc/ssl/certs/netbox.crt; + ssl_certificate_key /etc/ssl/private/netbox.key; + server_name $hostname; + keepalive_timeout 75; + root /var/www/netbox; + access_log /var/log/nginx/netbox.access combined; + location /static/ { + alias /var/www/netbox/netbox/static/; + } + location / { + uwsgi_pass unix:///run/uwsgi/netbox.sock; + include uwsgi_params; + } +} +``` + +Finally, test configs & start the nginx and uwsgi services: +```no-highlight +# uwsgi --show-config +# nginx -t +# service uwsgi start +# service nginx start +``` + !!! info Please keep in mind that the configurations provided here are bare minimums required to get NetBox up and running. You will almost certainly want to make some changes to better suit your production environment.