Nginx 不接收来自另一台计算机的表单数据

Nginx does not receive form-data from another computer

我的 nginx 有问题,无法接收表单数据。

现在我正在使用 nginx 和 aws ec2 准备 Web 应用程序。

目前ubuntu+django+uwsgi+nginx通过ssh放在ec2上

问题是,在我的电脑上,ec2 Public实例页面上的所有功能都正常工作,但是如果另一台电脑(不同IP)进入页面(页面打开良好)并尝试发送formData到服务器(nginx)然后发生错误403(不完整的分块编码)。

在ec2的安全组也设置了80个端口

如何接收外部用户从浏览器发送的视频文件(formData)?

到目前为止我做了什么

1.setting client_max_body_size client_max_body_size 50M;

2.change chown-socket 值 660 => 666

3.change 负载均衡循环 => 散列

4.changed nginx.conf 的用户到 www-data

//uwsgi.ini
[uwsgi]
uid=django
base=/var/www/fileconvert
home=%(base)/venv
chdir=%(base)
module=config.wsgi:application
env=DJANGO_SETTINGS_MODULE=config.settings
master=true
processes=5
socket=%(base)/run/uwsgi.sock
logto=%(base)/logs/uwsgi.log
chown-socket=%(uid):www-data
chmod-socket=666
vacuum=true

//uwsgi.service
[Unit]
Description=uWSGI Emperor service

[Service]
ExecStart=/var/www/fileconvert/venv/bin/uwsgi --emperor /var/www/fileconvert/run
User=django
Group=www-data
Restart=on-failure
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all
StandardError=syslog

[Install]
WantedBy=multi-user.target

// sites-available/fileconvert
upstream django{
        server unix:/var/www/fileconvert/run/uwsgi.sock;
}
server {
        listen 80;
        server_name ec2_public_domain;
        charset utf-8;
        client_max_body_size 50M;

        location / {
                include /etc/nginx/uwsgi_params;
                uwsgi_pass django;
        }
}

如果您需要更多信息,我会立即添加。谢谢。

问题是 csrf_token 不匹配。

@ensure_csrf_cookie 应该放在视图的第一行。(导入下)

并确保 ajax 或 axios csrf_cookie 在脚本中设置。