Nginx无法从另一台计算机接收表单数据

问题描述 投票:0回答:1

我在nginx上遇到问题,无法接收表单数据。

现在我正在使用Nginx和AWS EC2准备Web应用程序。

当前,通过ssh将ubuntu + django + uwsgi + nginx放置在ec2上。

问题是,在我的计算机上,ec2 Public Instances页面上的所有功能都正常运行,但是如果另一台计算机(不同的IP)进入该页面(页面打开正常)并尝试将formData发送到服务器(nginx)然后发生error403(不完整的分块编码)。

它还在ec2的安全组中设置了80个端口。

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

到目前为止我所做的

1。设置client_max_body_sizeclient_max_body_size 50M;

2。更改chown-socket值660 => 666

3.change load balance round robin => hash

4。将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;
        }
}

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

django amazon-web-services nginx uwsgi
1个回答
0
投票

问题是csrf_token不匹配。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.