首页 > 编程 > Python > 正文

简单的Apache+FastCGI+Django配置指南

2020-01-04 18:00:26
字体:
来源:转载
供稿:网友

这篇文章主要介绍了简单的Apache+FastCGI+Django配置指南,这也是Python上最流行的web框架Django的最流行搭配环境:)需要的朋友可以参考下

在Apache和FastCGI上使用Django,你需要安装和配置Apache,并且安装mod_fastcgi。 请参见Apache和mod_fastcgi文档: http://www.djangoproject.com/r/mod_fastcgi/ 。

当完成了安装,通过 httpd.conf (Apache的配置文件)来让Apache和Django FastCGI互相通信。 你需要做两件事:

使用 FastCGIExternalServer 指明FastCGI的位置。

使用 mod_rewrite 为FastCGI指定合适的URL。

指定 FastCGI Server 的位置

FastCGIExternalServer 告诉Apache如何找到FastCGI服务器。 按照FastCGIExternalServer 文档( http://www.djangoproject.com/r/mod_fastcgi/FastCGIExternalServer/ ),你可以指明 socket 或者 host 。以下是两个例子:

 

 
  1. # Connect to FastCGI via a socket/named pipe: 
  2. FastCGIExternalServer /home/user/public_html/mysite.fcgi -socket /home/user/mysite.sock 
  3.  
  4. # Connect to FastCGI via a TCP host/port: 
  5. FastCGIExternalServer /home/user/public_html/mysite.fcgi -host 127.0.0.1:3033 

在这两个例子中, /home/user/public_html/ 目录必须存在,而 /home/user/public_html/mysite.fcgi 文件不一定存在。 它仅仅是一个Web服务器内部使用的接口,这个URL决定了对于哪些URL的请求会被FastCGI处理(下一部分详细讨论)。 (下一章将会有更多有关于此的介绍)

使用mod_rewrite为FastCGI指定URL

第二步是告诉Apache为符合一定模式的URL使用FastCGI。 为了实现这一点,请使用mod_rewrite 模块,并将这些URL重定向到 mysite.fcgi (或者正如在前文中描述的那样,使用任何在 FastCGIExternalServer 指定的内容)。

在这个例子里面,我们告诉Apache使用FastCGI来处理那些在文件系统上不提供文件

 

 
  1. <VirtualHost 12.34.56.78> 
  2. ServerName example.com 
  3. DocumentRoot /home/user/public_html 
  4. Alias /media /home/user/python/django/contrib/admin/media 
  5. RewriteEngine On 
  6. RewriteRule ^/(media.*)$ /$1 [QSA,L] 
  7. RewriteCond %{REQUEST_FILENAME} !-f 
  8. RewriteRule ^/(.*)$ /mysite.fcgi/$1 [QSA,L] 
  9. </VirtualHost> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表