部署 GeoDjango

Warning

基于 GEOS 和 GDAL 的 GeoDjango 暂时还不是线程安全的。这样,我们 极力 推荐 在部署的时候不要使用线程 – 换句话说,推荐使用Apache进行部署或者用预先创建号的 FastCGI 来访问其他网络服务器。

Apache

在本节里,将讲述如何基于 VirtualHost 目录并利用 mod_python 或者 mod_wsgi 进行部署。针对GeoDjango,我们推荐 试用 mod_wsgi ,因为他已经是Django的官方推荐。而且,如果采用 mod_python ,那么必须使用一个预先生成版本的Apache。 而对于 mod_wsgi ,只要其正确配置,无论什么版本的 Apache 都将适用。

Note

在下面的例子中, AliasDirectory 的路径是基于整个系统的。如果需要,您可以替换目录,但是这些路径可能随着 您系统的不同而变化。

mod_wsgi

实例:

<VirtualHost *:80>
  WSGIDaemonProcess geodjango user=geo group=geo processes=5 threads=1
  WSGIProcessGroup geodjango
  WSGIScriptAlias / /home/geo/geodjango/world.wsgi

  Alias /media/ "/usr/lib/python2.5/site-packages/django/contrib/admin/media/"
  <Directory "/usr/lib/python2.5/site-packages/django/contrib/admin/media/">
    Order allow,deny
    Options Indexes
    Allow from all
    IndexOptions FancyIndexing
  </Directory>

</VirtualHost>

Warning

如果 WSGIDaemonProcessthreads 属性被设置为 1 ,那么Apache在运行GeoDjango时可能崩溃。请酌情增加 processes 的数量。

更多详情请参考 mod_wsgi 文档.

mod_python

Example:

<VirtualHost *:80>

  <Location "/">
    SetHandler mod_python
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE world.settings
    PythonDebug On
    PythonPath "['/var/www/apps'] + sys.path"
  </Location>

  Alias /media/ "/usr/lib/python2.5/site-packages/django/contrib/admin/media/"
  <Location "/media">
    SetHandler None
  </Location>

</VirtualHost>

Warning

当使用 mod_python 模块在一个预先创建的 Apache 上时,您的GeoDjango很可能导致Apache崩溃。

更多详情请参考 mod_python 文档.

Lighttpd

FastCGI

Nginx

FastCGI

Table Of Contents

Previous topic

Testing GeoDjango Apps

This Page