我想通过nginx运行多个虚拟主机,每个虚拟主机通过fcgi提供不同的django应用程序。这可能吗?如果是这样,有没有人有哪些/如何开始好资源? Nginx的文档似乎主要是示例,但没有一个特别的配置,我试图...如何为nginx虚拟服务器+ fcgi for django?
17
A
回答
30
最近有两个不错的博客文章关于设置nginx,但都使用nginx服务静态(或缓存)的内容和apache + mod_wsgi来为Django提供服务。我更喜欢这个,因为mod_wsgi使得进程管理比fcgi(以及其他优点)容易得多。
无论如何,这里是帖子:
编辑:确定我翻出旧tar文件和我的nginx + Django的+虚拟主机配置文件从一年前我切换到apache + mod_wsgi。这是一个开发的机器,所以你要调整的工人,连接#等
nginx.conf:
user nginx nginx;
worker_processes 2;
error_log /var/log/nginx/error_log info;
events {
worker_connections 1024;
use epoll;
}
http {
include /etc/nginx/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;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/plain text/html application/x-javascript text/xml text/css;
output_buffers 4 32k;
postpone_output 1460;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 75 20;
ignore_invalid_headers on;
include vhosts.d/*.conf;
}
因此,主nginx.conf包括在每一个文件vhosts.d /子目录。我的一个文件是为在本地主机上的服务PHP(可能是运行phpMyAdmin的)是这样的:
vhosts.d/00_localhost:
server {
listen 127.0.0.1:80;
server_name localhost;
access_log /var/log/nginx/localhost.access_log main;
error_log /var/log/nginx/localhost.error_log info;
root /var/www/localhost/htdocs;
index index.php index.html index.htm;
location ~ .php$ {
fastcgi_pass 127.0.0.1:8888;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/localhost/htdocs$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
}
然后本地Django开发服务器这样的:
50_django.local:
server {
listen 80;
server_name django.local;
access_log /var/log/nginx/django.access.log main;
error_log /var/log/nginx/django.error.log info;
root /var/www/django.local;
location ~* ^.+\.(mpg|avi|mp3|swf|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|rtf|mpeg)$ {
access_log off;
break;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|bmp|js)$ {
expires 30d;
break;
}
location/{
fastcgi_pass unix:/var/www/django.local/server.sock;
include fastcgi.conf;
}
location ^~ /admin/ {
fastcgi_pass unix:/var/www/django.local/server.sock;
include fastcgi.conf;
access_log off;
auth_basic "Welcome to admin";
}
}
最后,每个O f虚拟服务器为每个位置包含一个fastcgi.conf。
fastcgi.conf:
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
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_param SERVER_PORT $server_port;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_SOFTWARE "nginx";
fastcgi_param GATEWAY_INTERFACE "CGI/1.1";
fastcgi_param UID_SET $uid_set;
fastcgi_param UID_GOT $uid_got;
我不知道上述所有被要求,但是这是原因另一个我切换到mod_wsgi的......上级支持和文档:)
0
因为这个问题被问有人创建了一个点子安装Django的包,会从你的settings.py为你生成一个Apache或nginx的虚拟主机文件
pip install django-vhost
相关问题
- 1. PHP nginx服务器虚拟主机重定向错误
- 2. 虚拟SMTP服务器
- 3. 如何为服务器上的用户创建虚拟环境
- 4. Nginx代理服务器通过子域,节点虚拟主机
- 5. Django:如何模拟慢速服务器?
- 6. 如何为Web服务器创建虚拟目录? (ASP.NET)
- 7. 如何服务于nginx的
- 8. 主机文件和虚拟服务器
- 9. Django + Nginx + uWSGI:内部服务器错误
- 10. 如何在虚拟服务器2005中扩展虚拟磁盘的大小?
- 11. NodeJS nodemailer - IIS SMTP虚拟服务器
- 12. 如何使用MSBuild和MS虚拟服务器和/或Hyper-V服务器虚拟化创建虚拟机作为构建过程的一部分?
- 13. Django:使用sudo在虚拟环境中运行服务器
- 14. (nginx + uwsgi + django)。 nginx的服务器不允许请求打uwsgi服务器
- 15. 将Nginx作为服务部署Django
- 16. 保护Apache服务器虚拟主机
- 17. Wamp服务器虚拟主机在线
- 18. sql报告服务器虚拟目录
- 19. 虚拟服务器迁移概述?
- 20. 检测虚拟主机服务器
- 21. Python3 Http Web服务器:虚拟主机
- 22. 网络服务器虚拟网络
- 23. 虚拟服务器上的CouchDB
- 24. 虚拟服务器的硬件要求
- 25. 配置Windows虚拟SMTP服务器
- 26. 用于测试的虚拟服务器
- 27. 错误与虚拟服务器
- 28. 在Mac OS上虚拟化服务器
- 29. 虚拟专用服务器问题
- 30. 虚拟服务器IIS WMI问题
我从来没有碰到这样的工作,而是人,是什么答案。 – 2009-04-25 11:02:48