我想通过Nginx运行几个虚拟主机,每个通过fcgi服务一个不同的django应用程序。 这可能吗? 如果是这样,有没有人有好的资源在哪里/如何开始? Nginx的文档似乎大部分的例子,但没有一个特定的configuration,我正在尝试…
将os.popen命令转换为一个subprocess.Popen实例
在windows 10中使用pg:push for Heroku
uwsgi不创build套接字文件
无法让Nginx内部redirect工作
Django + uWsgi + Nginx url映射
最近有两个关于设置Nginx的相当不错的博客文章,但都使用Nginx来提供静态(或缓存)的内容和Apache + mod_wsgi来服务Django。 我更喜欢这个,因为mod_wsgi使得进程管理比fcgi(其他优点)更容易。
无论如何,这里是帖子:
Django和Ubuntu IntrepID年鉴
django,Nginx,memcached – 动态三重奏
编辑:好的我挖出了一个旧的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 /子目录中的每个文件。 我的一个文件是在localhost上运行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"; } }
最后,每个虚拟服务器都为每个位置包含一个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的另一个原因…卓越的支持和文档:)
由于这个问题被问到有人创建了一个pip可安装的django包,它会从你的settings.py中为你生成一个apache或Nginx的vhost文件
pip install django-vhost
看看这里: https : //bitbucket.org/djangostars/django-vhost
总结以上是内存溢出为你收集整理的如何为nginx虚拟服务器+ fcgi for django?全部内容,希望文章能够帮你解决如何为nginx虚拟服务器+ fcgi for django?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)