Web servers

Apache2

mod_wgsi

First, make sure that mod_wsgi is installed on your server.

Create a new virtualhost in your Apache configuration and put the following content inside:

<VirtualHost *:80>
  ServerName <your value>
  DocumentRoot <path to your site's dir>

  Alias /media/ <path to your site's dir>/media/
  <Directory <path to your site's dir>/media>
    Order deny,allow
    Allow from all
  </Directory>

  Alias /sitestatic/ <path to your site's dir>/sitestatic/
  <Directory <path to your site's dir>/sitestatic>
    Order deny,allow
    Allow from all
  </Directory>

  WSGIScriptAlias / <path to your site's dir>/wsgi.py
</VirtualHost>

This is just one possible configuration.

Note

Django 1.3 users, please consult this page, it contains an example wsgi.py file.

Note

You will certainly need more configuration in order to launch Apache.

mod_python

First, make sure that mod_python is installed on your server.

Create a new virtualhost in your Apache configuration and put the following content inside:

<VirtualHost *:80>
  ServerName <your value>
  DocumentRoot <path to your site's dir>

  <Location "/">
    SetHandler mod_python
    PythonHandler django.core.handlers.modpython
    PythonPath "['<path to directory that contains your site's dir>'] + sys.path"
    SetEnv DJANGO_SETTINGS_MODULE <your site's name>.settings
  </Location>

  Alias "/sitestatic" "<path to your site's dir>/sitestatic"
  <Location "/sitestatic/">
    SetHandler None
  </Location>

  Alias "/media" "<path to your site's dir>/media"
  <Location "/media/">
    SetHandler None
  </Location>
</VirtualHost>

This is just one possible configuration.

Note

You will certainly need more configuration in order to launch Apache.

Nginx

Nginx is a really fast HTTP server. Associated with Green Unicorn, it gives you one of the best setup to serve python/Django applications. Modoboa’s performances are really good with this configuration.

To use this setup, first download and install those softwares (Install gunicorn and install nginx).

Then, use the following sample gunicorn configuration (create a new file named gunicorn.conf.py inside Modoboa’s root dir):

backlog = 2048
bind = "unix:/var/run/gunicorn/modoboa.sock"
pidfile = "/var/run/gunicorn/modoboa.pid"
daemon = True
debug = False
workers = 2
logfile = "/var/log/gunicorn/modoboa.log"
loglevel = "info"

To start gunicorn, execute the following commands:

$ cd <modoboa dir>
$ gunicorn_django -c gunicorn.conf.py

Now the nginx part. Just create a new virtual host and use the following configuration:

upstream modoboa {
      server      unix:/var/run/gunicorn/modoboa.sock fail_timeout=0;
}

server {
      listen 443;
      server_name <host fqdn>;
      root <modoboa's root dir>;

      access_log  /var/log/nginx/<host fqdn>.access.log;
      error_log /var/log/nginx/<host fqdn>.error.log;

      location /sitestatic/ {
              autoindex on;
      }

      location /media/ {
              autoindex on;
      }

      location / {
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header Host $http_host;
              proxy_redirect off;
              proxy_set_header X-Forwarded-Protocol ssl;
              proxy_pass http://modoboa;
      }
}

Paste this content to your configuration (replace values between <> with yours), restart nginx and enjoy a really fast application!

Project Versions

Table Of Contents

Previous topic

Dovecot and Postfix

Next topic

Adding a new plugin

This Page