2

Django サイトを apache+wsgi から nginx+uwsgi に変換しました。ファイルブラウザを使用したファイルのアップロードを除いて、すべてが正常に機能しているようです。これは apache+wsgi で動作したため、nginx または uwsgi の構成の問題であると想定しています。

私が見ている問題は、アップロードがエラーを返さないことですが、ファイルはディスクに書き込まれません。

トラフィックは、フロントエンド nginx インスタンスによって nginx インスタンスにプロキシされます。

私のnginx.conf

worker_processes  4;

events {
    worker_connections  1024;
}

http {
    access_log  /home/username/logs/user/access_nginx_uwsgi.log combined;
    error_log   /home/username/logs/user/error_nginx_uwsgi.log  crit;

    include mime.types;
    sendfile on;

    set_real_ip_from   127.0.0.1;
    real_ip_header     X-Forwarded-For;

    include /home/username/webserver/nginx/*.conf;

}

そして、私の仮想ホスト構成は.

server {
    listen 127.0.0.1:26293;
    server_name domainname.com;

    access_log  /home/username/logs/user/access_tdebt.log combined;
    error_log   /home/username/logs/user/error_tdebt.log  crit;

    location /static/ {
        alias /home/username/.virtualenvs/tdebt/tdebt/site_static/;
        expires 7d;
    }

    location /media/ {
        alias /home/username/.virtualenvs/tdebt/tdebt/site_media/;
        expires 7d;
    }
    location / {
        include uwsgi_params;
        uwsgi_pass unix:///home/username/webserver/sock/tdebt.sock;
    }
}

uwsgi 設定

[uwsgi]
chdir = /home/username/.virtualenvs/tdebt
home=/home/username/.virtualenvs/tdebt
wsgi-file = /home/username/.virtualenvs/tdebt/tdebt/webserver_config/wsgi.py
env = DJANGO_SETTINGS_MODULE=tdebt.settings
master = true
pidfile = /home/username/webserver/pid/tdebt.pid
socket = /home/username/webserver/sock/tdebt.sock
processes = 2
threads = 30
enable-threads = true
harakiri = 120
vacuum = true
reload-on-rss = 30
log-x-forwarded-for = true
idle = 300
procname-master = [username-tdebt] uWSGI Master
procname = [username-tdebt] uWSGI Worker
logto = /home/username/webserver/logs/tdebt_uwsgi.log
logdate = true

どんな助けでも大歓迎です。他に役立つ情報がありましたら、お知らせください。

アップデート:

問題は Apache/mod_uwsgi を使用して複製できるため、問題は django-filebrowser と uwsgi にあるようです。

アップデート:

問題は、私が使用していた django-filebrowser のフォークにありました。何らかの理由で uwsgi では動作しません。

4

1 に答える 1

3

Nginx には、client_max_body_size送信できる HTTP 本文のサイズを制限するディレクティブがあります。デフォルトは 1 メガなので、何か追加するclient_max_body_size = 20mか、似たようなものを追加する必要があります。ほとんどのブラウザーは 413 エラーを置き換えないため、エラーは発生しません。

于 2012-11-22T12:54:05.080 に答える