Django for Apache、Nginx简单部署
作者:CleverDeng
版权声明:本博客发表的文章均为作者原创。转载时必须以链接形式注明作者和原始出处
原文地址:http://blog.mrdtime.com/856-Django for Apache、Nginx简单部署.aspx
在生产环境中,一般考虑了大量用户的高并发行和稳定性,一般会使用Apache、Nginx等专业的Web服务器,从而放弃使用便于开发过程中测试代码使用的Django自带轻量级服务器。本文记录Django在Apache、Nginx的简单部署方案,以便记忆力衰退时翻阅。
由于生产环境机器的配置复杂,因此以上的配置参数需要根据环境的不同从而进行相关的设置和优化,以达到最佳的效果。
Apache使用mod_python部署
安装mod_python:sudo apt-get install libapache2-mod-python
编辑/etc/apache2/httpd.conf,添加以下配置信息:LoadModule python_module modules/mod_python.so
<Location "/mysite/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonOption django.root /mysite
PythonDebug On
PythonPath "['var/www'] + sys.path"
</Location>
重启Apache,如果RP还行,即可访问Django创建的项目。注:PythonPath选项设置的目录为您项目所在目录的上级目录路径(有点儿绕)详细请参考:http://docs.djangoproject.com/en/1.3/howto/deployment/modpython/
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonOption django.root /mysite
PythonDebug On
PythonPath "['var/www'] + sys.path"
</Location>
Nginx使用Fastcgi部署
安装Nginx:sudo apt-get install nginx
编辑/etc/nginx/sites-available/default,添加以下配置信息: location / {
fastcgi_pass 192.168.1.201:5555;#Django runcgi的访问的地址
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
}
重启Nginx,如果RP还行,即可访问Django创建的项目。注:Django需要启动,启动命令为:python /var/www/mysite/manage.py runfcgi method=prefork maxquests=200 daemonize=true host=192.168.1.201 port=5555 (相关参数选项可以通过--help参数查看)fastcgi_pass 192.168.1.201:5555;#Django runcgi的访问的地址
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
}
由于生产环境机器的配置复杂,因此以上的配置参数需要根据环境的不同从而进行相关的设置和优化,以达到最佳的效果。
推荐(
反对(