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 在脚本中设置。
我的 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 在脚本中设置。