Her biri farklı bir django uygulaması olan fcgi ile nginx aracılığıyla birkaç sanal ana bilgisayar çalıştırmak istiyorum. Mümkün mü? Eğer öyleyse, nerede/nasıl başlayacak iyi kaynakları var mı? Nginx docs çoğunlukla örnek olarak görünüyor, ama ben herhangi bir yapılandırma denemeye çalışıyorum ...django için nginx sanal sunucular + fcgi nasıl?
cevap
Son zamanlarda nginx kurulumu hakkında oldukça iyi iki blog gönderisi yapıldı, ancak her ikisi de nginx'i statik olarak kullanmak için kullanıyor (veya önbelleğe alınmış) Django'ya hizmet vermek için içerik ve apache + mod_wsgi. Bunu kendim tercih ederim çünkü mod_wsgi süreç yönetimini fcgi'den (diğer avantajların yanı sıra) çok daha kolay hale getirir.
Neyse, burada mesajlar şunlardır:
DÜZENLEME: Ben benim nginx + django + sanal konak yapılandırma dosyaları ile eski tar dosyasını çıkardı tamam yıl önce apache + mod_wsgi'ye geçtim. Bu gelişme makinesi olduğunu, bu yüzden vb işçiler, bağlantıların # ayarlamak isteyeceksiniz
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;
}
Yani, ana nginx.conf her dosyası içerir vhosts.d/alt dizin.
vhosts.d/00_localhost: Yerel Django geliştirme sunucusu böyle ardından
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;
}
}
Ve:
benim dosyalardan biri (muhtemelen phpMyAdmin'e koşuyordu) böyle localhost PHP hizmet içindi50_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";
}
}
Son olarak, her o f sanal sunucular her konum için bir fastcgi.conf içeriyordu.
fastcgi.conf: Yukarıdakilerin tümü istendi, ama ben ... üstün destek ve dokümantasyon mod_wsgi geçiş nedenlerinden bir diğeri oldu emin değilim
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;
:)
bu soru birisi settings.py sana bir apache veya nginx sankon dosyası oluşturur bir pip kurulabilir django paketi oluşturan istendi yana
pip install django-vhost
Buradan kontrol edin: https://bitbucket.org/djangostars/django-vhost
- 1. Django fcgi neden ölür? Nasıl öğrenebilirim?
- 2. Sanal Sunucular XAMPP çalışmıyor [Linux Ubuntu]
- 3. django nginx
- 4. El capitan OS X Server 5.1 yükseltme aralıkları sanal sunucular
- 5. Django için Temel URL, Behind Nginx Proxy
- 6. Raylar 3 ve FCGI?
- 7. Git Sunucular 2 Sunucular arasında nasıl senkronize edilir
- 8. SQL Sunucular: Sunucuları bağlamadan bağlantılı sunucular?
- 9. kullanma Sunucular
- 10. nGINX
- 11. Django + uWSGI + Nginx + SSL - çalışma yapılandırması için istek (SSL'ye vurgu)
- 12. django projesi için uWSGI + nginx, strting uwsgi ile hata
- 13. Nginx + Gunicorn + Supervisor'da Oturum Açma Hatası + Django
- 14. Nginx/Django Yönetici POST https only
- 15. django + nginx + wsgi içinde, "mysite.sock" nedir
- 16. nasıl Nginx
- 17. Django sanal konak kurulumu. Apache mod_wsgi
- 18. Python birim testlerinde harici sunucular nasıl takılır?
- 19. nginx conf dosyasında global değişken nasıl tanımlanır
- 20. nginx:
- 21. Karşılaştır nginx + Apache + mod_wsgi vs nginx + uWSGI?
- 22. nginx
- 23. Django projesini ubuntu env'den sanal env'ye nasıl taşıyabilirsiniz?
- 24. nginx /index.html için/rewrite
- 25. NGİNX
- 26. Nginx hata günlüğünde perl betiği hataları nasıl alınır (FCGIwrap ile Nginx)
- 27. nginx
- 28. Nginx
- 29. FCGI betiği adının mod_rewrite ile URL'den gizlenmesi
- 30. Capistrano, sunucular zinciri aracılığıyla dağıtılıyor
bu işin türüne, ama adam, ne cevap dokundu hiç. –