Skip to main content

Gunicorn vs NGINX Explained

Web applications typically disseminate information via three server layers:

  1. Web server  - First layer: Receives request from client(web browser)
  2. Application server - 2nd layer: Receives requests from web server if the client is requesting dynamic content
  3. Database - 3rd layer: Receives database queries from web framework's request handler methods
In this example , nginx is the web server, gunicorn is the application server(interface between nginx and web framwork request handling function) and the database can be assumed to be a lightweight sqlite3 database.

Example: Django architecture


Alternatives to nginx:

  • Cherokee
  • Apache HTTP server



Alternatives for gunicorn:

  • Apache
  • Mongoose

Comments

Popular posts from this blog

How to transfer a gitlab repository into github

Method 1: Use the linux command line 1. Assume you have a gitlab repository called matric2016.git 2. Create a new working directory: $ mkdir myproj && cd myproj $ git clone gitlab@gitlab.com/Banzyme2/matric2016.git $ cd matric2016.git Make sure you create a github repository with the same name as the gitlab repository ,i.e. matric2016  3. Clone your project into github as follows:  $ git remote add github https://github.com/Banzyme/matric2016.git  $  git push --mirror github Method 2: Using the github dashboard repository import 1. Click "+" next to your github profile. Select import repository 2. Fill out the import form  as follows

Django + Docker-Compose deployment to Heroku

Setting up a docker-compose django project 1. Follow the django docker-compose guide set-up here . 2. Your working directory should now contain all files listed below Dockerfile docker-compose.yml manage.py requirements.txt 3. Test that you app is running locally $ sudo docker-compose up   4. Navigate to localhost:8000 on your web browser to test if everything is working as expected. Django production application configuration 1. Modify your Dockerfile as follows Dockerfile FROM python:3.6.4 ENV PYTHONUNBUFFERED 1 ENV PORT 5000  RUN mkdir /code WORKDIR /code ADD requirements.txt /code RUN pip install -r requirements ADD . /code CMD python3 manage.py runserver 0.0.0.0:$PORT  2. Modify your wsgi.py file as follows wsgi.py import os from django.core.wsgi import get_wsgi_application from whitenoise.django import DjangoWhiteNoise ...