Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| infrastructure:server:webservers_nginx_flask_drupal_etc [2017/02/28 14:21] dolf created | infrastructure:server:webservers_nginx_flask_drupal_etc [2017/02/28 14:40] (current) dolf | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| We are running a number of things for the nightowl webserver. | We are running a number of things for the nightowl webserver. | ||
| - | - As a main webserver we run Nginx. This receives and handles all the initial http(s) requests. | + | * As a main webserver we run Nginx. This receives and handles all the initial http(s) requests. | 
| - | - Nginx with fastcgi is used to handle php (with php5-fpm) | + | * Nginx with fastcgi is used to handle php (with php5-fpm) | 
| - | - gunicorn in combination with virtualenv is used to handle python wsgi webapplications. Each application runs on it's own socket. Nginx delegates all the requests to those applications using a reverse proxy (the request comes in at nginx on port 80 or 443, but nginx sends it on to another port on the same machine (127.0.0.1) where gunicorn is listening). | + | * gunicorn in combination with virtualenv is used to handle python wsgi webapplications. Each application runs on it's own socket. Nginx delegates all the requests to those applications using a reverse proxy (the request comes in at nginx on port 80 or 443, but nginx sends it on to another port on the same machine (127.0.0.1) where gunicorn is listening). | 
| - | - circus is used to start the gunicorn apps, handle logging and restart them if necessary. | + | * circus is used to start the gunicorn apps, handle logging and restart them if necessary. | 
| Webapplications we are running: | Webapplications we are running: | ||
| - | - drupal with mysql for nightowl.foundationu.com | + | * drupal with mysql for nightowl.foundationu.com | 
| - | - taiga (with gunicorn/circus behind nginx) and postgresql as database | + | * taiga (with gunicorn/circus behind nginx) and postgresql as database, and rabbitmq and redis for async task management (optional but nice) | 
| + | * rfid management application (with gunicorn/circus behind nginx) and mysql as database | ||
| ===== Installing Circus ===== | ===== Installing Circus ===== | ||
| Line 29: | Line 30: | ||
| Lastly make sure the port number (8001 in this case) is unique. Choose a unique port number (starting form 8001) for each application and change both the nginx and circus config accordingly. | Lastly make sure the port number (8001 in this case) is unique. Choose a unique port number (starting form 8001) for each application and change both the nginx and circus config accordingly. | ||
| - | ``` | + | <code> | 
| [watcher:rfid] | [watcher:rfid] | ||
| working_dir = /srv/www/vhosts/rfid_test_nightowl_foundationu_com/inventory/ | working_dir = /srv/www/vhosts/rfid_test_nightowl_foundationu_com/inventory/ | ||
| Line 46: | Line 47: | ||
| HOME= /srv/www/vhosts/rfid_test_nightowl_foundationu_com/ | HOME= /srv/www/vhosts/rfid_test_nightowl_foundationu_com/ | ||
| PYTHONPATH=/srv/www/vhosts/rfid_test_nightowl_foundationu_com/inventory/venv/lib/python3.4/site-packages:/srv/www/vhosts/rfid_test_nightowl_foundationu_com/inventory/ | PYTHONPATH=/srv/www/vhosts/rfid_test_nightowl_foundationu_com/inventory/venv/lib/python3.4/site-packages:/srv/www/vhosts/rfid_test_nightowl_foundationu_com/inventory/ | ||
| - | ``` | + | </code> | 
| - | ===== Setting up nginx to reverse-proxy a python wsgi (gunicorn) application | + | |
| - | ===== | + | ===== Setting up nginx to reverse-proxy a python wsgi (gunicorn) application ===== | 
| Follow the basic setup from [[https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-14-04#configuring-nginx-to-proxy-requests|Digital Ocean]] | Follow the basic setup from [[https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-14-04#configuring-nginx-to-proxy-requests|Digital Ocean]] | ||
| but instead of using "http://unix:" for the proxy pass directive, use http://127.0.0.1:<portnumber> as you configured in circus.ini. | but instead of using "http://unix:" for the proxy pass directive, use http://127.0.0.1:<portnumber> as you configured in circus.ini. | ||
| + | |||
| + | ===== Installing and running Taiga ===== | ||
| + | See https://github.com/taigaio/taiga-doc/blob/master/setup-production.adoc | ||
| + | |||

 
   
   
   
  