Skip to content

Web Server

Matthew Bourque edited this page Nov 30, 2020 · 9 revisions

The jwql web application development server is configured using the following technologies:

  • A Linux virtual machine (the jwql development server)
  • A nginx web server
  • The gunicorn Python Web Server Gateway Interface (WSGI) HTTP server
  • The supervisord process control manager
  • The django web framework

To see how all of these technologies work together to produce a usable web application, see the below diagram (note that this project uses django instead of flask):

When logged into the service account on the jwql development server, the supervisord process that runs the web server can be viewed/started/stopped/restarted via the following commands,

  • sudo /bin/systemctl status jwql.service
  • sudo /bin/systemctl start jwql.service
  • sudo /bin/systemctl stop jwql.service
  • sudo /bin/systemctl restart jwql.service

The clone of the jwql repository that is used to render the website is located in ~/var/lib/jwql/jwql/. This clone should always be set on the latest version of the master branch. The jwql dev server has a cron job that pulls in any latest changes to this clone every 5 minutes.

Important locations:

  • The configuration file for nginx is located at /etc/nginx/conf.d/jwql.conf and at /etc/nginx/nginx.conf
  • The configuration for supervisord is located at /etc/systemd/system/jwql.service