Configuración del servidor web
Para el servidor web se utilizará el servidor web apache en conjunto con el servidor web nginx implementado un servicio de caché y de esta manera optimizar el desempeño del ckan. Para más información consultar la documentación oficial
Instalar apache, modwsgi y modrpaf
sudo apt-get install apache2 libapache2-mod-wsgi libapache2-mod-rpaf
Instalar nginx
sudo apt-get install nginx
Instalar un servidor de email
sudo apt-get install postfix
Crear el archivo con el script para wsgi
Crear un script WSGI script en el archivo /etc/ckan/default/apache.wsgi con las siguientes lineas:
import os activate_this = os.path.join('/usr/lib/ckan/default/bin/activate_this.py') execfile(activate_this, dict(file=activate_this))
from paste.deploy import loadapp config_filepath = os.path.join(os.path.dirname(os.path.abspath(file)), 'production.ini') from paste.script.util.logging_config import fileConfig fileConfig(config_filepath) application = loadapp('config:%s' % config_filepath)
Crear el archivo de configuración para apache
Crear un archivo de configuración apache en /etc/apache2/sites-available/ckan_default.conf, con el siguiente contenido:
<VirtualHost 127.0.0.1:8080>
ServerName datos.org.py
ServerAlias www.datos.org.py
WSGIScriptAlias / /etc/ckan/default/apache.wsgi
# Pass authorization info on (needed for rest api).
WSGIPassAuthorization On
# Deploy as a daemon (avoids conflicts between CKAN instances).
WSGIDaemonProcess ckan_default display-name=ckan_default processes=2 threads=15
WSGIProcessGroup ckan_default
ErrorLog /var/log/apache2/ckan_default.error.log
CustomLog /var/log/apache2/ckan_default.custom.log combined
<Directory /etc/ckan/default/>
#Order deny,allow
#Allow from all
Options All
AllowOverride All
Require all granted
</Directory>
<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1
</IfModule>
</VirtualHost>
Modificar el archivo ports.conf del apache
Abrir /etc/apache2/ports.conf: Listen 80
Cambiar el puerto 80 por el 8080: Listen 8080
Crear el archivo de configuración para nginx
Crear el archivo de configuracion nginx en /etc/nginx/sites-available/ckan_default, con las siguientes lineas:
`proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache:30m max_size=250m; proxy_temp_path /tmp/nginx_proxy 1 2;
server { client_max_body_size 100M; location / { proxy_pass http://127.0.0.1:8080/; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_cache cache; proxy_cache_bypass $cookie_auth_tkt; proxy_no_cache $cookie_auth_tkt; proxy_cache_valid 30m; proxy_cache_key $host$scheme$proxy_host$request_uri; # In emergency comment out line to force caching # proxy_ignore_headers X-Accel-Expires Expires Cache-Control; } }`
Activar el sitio ckan
sudo a2ensite ckan_default.conf sudo ln -s /etc/nginx/sites-available/ckan_default /etc/nginx/sites-enabled/ckan_default sudo service apache2 reload sudo service nginx reload