この場合、wsgiプロセスがnginxと "スタンドアロン"プロセスのどちらかによって起動されることを前提に、wsgiを使用することをお勧めします。典型的なnginxのとWSGI設定:
myproject.wsgi:
#!/usr/bin/python2.7
import djangorecipe.wsgi
application = djangorecipe.wsgi.main('settings', logfile='/var/log/django/myproject.wsgi.log')
myproject.nginx.conf:
server {
listen 80;
server_name myproject.com;
# static resources
location ^~ /static/ {
alias /var/www/myproject/static/;
expires 31d;
}
wsgi_var REQUEST_METHOD $request_method;
wsgi_var QUERY_STRING $query_string;
wsgi_var CONTENT_TYPE $content_type;
wsgi_var CONTENT_LENGTH $content_length;
wsgi_var SERVER_NAME $server_name;
wsgi_var SERVER_PORT $server_port;
wsgi_var SERVER_PROTOCOL $server_protocol;
# additional variables (not used if unavailable)
wsgi_var REQUEST_URI $request_uri;
wsgi_var DOCUMENT_URI $document_uri;
wsgi_var DOCUMENT_ROOT $document_root;
wsgi_var SERVER_SOFTWARE $nginx_version;
wsgi_var REMOTE_ADDR $remote_addr;
wsgi_var REMOTE_PORT $remote_port;
wsgi_var SERVER_ADDR $server_addr;
wsgi_var REMOTE_USER $remote_user;
location/{
client_body_buffer_size 50;
wsgi_pass /var/www/myproject/myproject.wsgi;
wsgi_pass_authorization off;
wsgi_script_reloading on;
wsgi_use_main_interpreter on;
}
# logging
access_log /var/log/nginx/myproject/access.log;
error_log /var/log/nginx/myproject/error.log;
}
すでにFastCGIを/ nginxのは、 'でファイルを経由して実行するように設定している場合/ System/Library/LaunchDaemons/nginx.plist'を実行すると自動的に起動すると言われますが、何が問題なのですか?マシンの起動時にすでに起動しているはずです。 –
nginxが起動しますが、django-fastcgiの部分は別のプロセスです。 nginxはソケット(または名前付きパイプなど)を介してdjango webappプロセス(fastcgiを介して、私が理解するように)と通信します。 – cachvico
nginxにdjango fastcgiサービスの起動を開始させるプロセスを繰り返すことはできませんか? FastCGIでは、サービスが何を開始するかは関係ありません。実際のリクエストが受信されると、それらはお互いを見つけるでしょう。 – SingleNegationElimination