用户工具

站点工具


doc:n:nginx_django

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
doc:n:nginx_django [2007/12/05 01:26]
delphij python lives in lang/
doc:n:nginx_django [2009/08/03 11:15] (当前版本)
qingfeng_bsd 修改了:fastcgi文档的地址. 增加了threaded模式的配置. 增加了一个推荐补丁
行 1: 行 1:
 +====== Django on Nginx ======
 +建议:FreeBSD RELENG_6 \\ 
 +使用心得:​nginx处理大并发比较稳定,​特别省内存,​配置简单. \\ 
 +1.安装python ​
 +  cd /​usr/​ports/​lang/​python
 +  make install clean 
 +2.安装flup ​
 +  cd /​usr/​ports/​www/​py-flup ​
 +  make install clean 
 +
 +3.安装django ((我使用svn版))
 +  cd /​usr/​ports/​www/​py-django  ​
 +  make install clean
 +
 +4.安装nginx ​
 +  cd /​usr/​ports/​www/​nginx
 +  make install clean 
 +
 +5.启动和管理flup的脚本 ​ 参考http://​docs.djangoproject.com/​en/​1.0/​howto/​deployment/​fastcgi/​ \\ 
 +
 +5.1prefork方式
 +  #!/bin/sh
 +  # Replace these three settings.
 +  PROJDIR="/​home/​user/​myproject"​
 +  PIDFILE="​$PROJDIR/​mysite.pid"​
 +  SOCKET="​$PROJDIR/​mysite.sock"​
 +  cd $PROJDIR
 +  if [ -f $PIDFILE ]; then
 +      kill `cat -- $PIDFILE`
 +      rm -f -- $PIDFILE
 +  fi
 +  exec /​usr/​local/​bin/​python manage.py runfcgi method=prefork socket=${SOCKET} pidfile=${PIDFILE} minspare=5 maxspare=10 maxchildren=40
 +
 +5.2threaded方式
 +  /​usr/​local/​bin/​python manage.py runfcgi method=threaded host=127.0.0.1 port=3033
 +
 +6.配置nginx ​ 参考http://​wiki.codemongers.com/​Main\\ ​
 +nginx.conf
 +  user  www www;
 +  worker_processes ​ 5;
 +  pid /​var/​run/​nginx.pid;​
 +  error_log ​ /​var/​log/​httpd/​error.log warn;
 +  events {
 +      worker_connections ​ 10240;
 +      use kqueue;
 +  }
 +  http {
 +      include ​      ​mime.types;​
 +      default_type ​ application/​octet-stream;​
 +      log_format ​ main  '​$remote_addr - $remote_user [$time_local] '
 +              '"​$request"​ $status $bytes_sent '
 +              '"​$http_referer"​ "​$http_user_agent"​ '
 +              '"​$gzip_ratio"';​
 +      client_header_timeout ​ 3m;
 +      client_body_timeout ​   3m;
 +      send_timeout ​          3m;
 +      connection_pool_size ​       256;
 +      client_header_buffer_size ​   1k;
 +      large_client_header_buffers ​   4 2k;
 +      request_pool_size ​       4k;
 +      output_buffers ​  4 32k;
 +      postpone_output ​ 1460;
 +      sendfile ​       on;
 +      tcp_nopush ​            on;
 +      keepalive_timeout ​     75 20;
 +      tcp_nodelay ​           on;
 +      client_max_body_size ​      10m;
 +      client_body_buffer_size ​   256k;
 +      proxy_connect_timeout ​     90;
 +      proxy_send_timeout ​        90;
 +      proxy_read_timeout ​        90;
 +      client_body_temp_path ​     /​var/​log/​nginx/​client_body_temp;​
 +      proxy_temp_path ​           /​var/​log/​nginx/​proxy_temp;​
 +      fastcgi_temp_path ​         /​var/​log/​nginx/​fastcgi_temp;​
 +      gzip on;
 +      gzip_min_length ​ 1100;
 +      gzip_buffers ​    4 32k;
 +      gzip_types ​      ​text/​plain text/html application/​x-javascript text/xml text/css;
 +      ignore_invalid_headers ​   on;
 +      include ​   website.conf;​
 +  }
 +website.conf ​ \\ 
 +6.1prefork方式
 +  server {
 +      listen 80;
 +      server_name test.tmdxy.org;​
 +      access_log ​   /​var/​log/​httpd/​access.log main;
 +      location / {
 +              # host and port to fastcgi server
 +              fastcgi_pass unix:/​tmp/​test_tmdxy.sock;​
 +              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_param REMOTE_ADDR ​          ​$remote_addr;​
 +              fastcgi_param SERVER_PROTOCOL ​      ​$server_protocol;​
 +              fastcgi_param SERVER_PORT ​          ​$server_port;​
 +              fastcgi_param SERVER_NAME ​          ​$server_name;​
 +              fastcgi_intercept_errors off;
 +          }
 +      location ^~ /media/ {
 +          alias    /​home/​www/​django/​test_tmdxy_org/​meida/;​
 +      }
 +      location ~* ^.+\.(gif|png|jpg|jpeg|css|swf|htm|html|asp|php|jsp|js|doc|txt)$ {
 +          root    /​home/​www/​django/​test_tmdxy_org/​media/;​
 +          access_log ​  off;
 +      }
 +  }
 +6.2threaded方式
 +  server {
 +      listen 80;
 +      server_name test.tmdxy.org;​
 +      access_log ​   /​var/​log/​httpd/​access.log main;
 +      location / {
 +              # host and port to fastcgi server
 +              fastcgi_pass 127.0.0.1:​3033;​
 +              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_param REMOTE_ADDR ​          ​$remote_addr;​
 +              fastcgi_param SERVER_PROTOCOL ​      ​$server_protocol;​
 +              fastcgi_param SERVER_PORT ​          ​$server_port;​
 +              fastcgi_param SERVER_NAME ​          ​$server_name;​
 +              fastcgi_intercept_errors off;
 +          }
 +      location ^~ /media/ {
 +          alias    /​home/​www/​django/​test_tmdxy_org/​meida/;​
 +      }
 +      location ~* ^.+\.(gif|png|jpg|jpeg|css|swf|htm|html|asp|php|jsp|js|doc|txt)$ {
 +          root    /​home/​www/​django/​test_tmdxy_org/​media/;​
 +          access_log ​  off;
 +      }
 +  }
 +
 +7.配置反向代理服务器 \\ 
 +只需在server {}里加入
 +  location /go/ {
 +      proxy_pass http://​192.168.1.5:​8088/; ​
 +      proxy_redirect http://​192.168.1.5:​8088/​ /;
 +  }
 +
 +8.nginx+django推荐打的补丁 http://​code.djangoproject.com/​ticket/​8874 \\
 +主要解决,​nginx+django,​访问/​的时候,​无法正确映射到django的方法的问题.
 +  ​
  
/data/vhosts/wiki-data/pages/doc/n/nginx_django.txt · 最后更改: 2009/08/03 11:15 由 qingfeng_bsd