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.
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 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!