self.method = environ ['REQUEST_METHOD']。upper()KeyError:'REQUEST_METHOD'使用uwsgi在EC2
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了self.method = environ ['REQUEST_METHOD']。upper()KeyError:'REQUEST_METHOD'使用uwsgi在EC2相关的知识,希望对你有一定的参考价值。
我得到了一个
当我打http://ec2-X-YZ-ABC-EFG.compute-1.amazonaws.com/admin
。
我很确定我的Django应用程序没有任何问题,因为应用程序是空的,即。我刚刚使用django-admin startproject tempo
创建了这个应用程序 - ALLOWED_HOSTS = ['*']
,因此它接受来自任何IP的请求。
由于这是一个开发服务器并且不包含数据,因此我允许来自任何主机的请求。这是我的入境规则,
Ports Protocol Source
80 tcp 0.0.0.0/0, ::/0
22 tcp 0.0.0.0/0, ::/0
443 tcp 0.0.0.0/0, ::/0
这是我的/etc/nginx/sites-enabled/tempo
upstream tempo-server {
server unix:///home/ubuntu/tempo/tempo.sock;
}
server {
error_log /var/log/nginx/tempo/error.log;
access_log /var/log/nginx/tempo/access.log;
listen 80;
server_name X.YX.ABC.DEF;
location = /media/ {
root /home/ubuntu/tempo/media;
}
location / {
include /etc/uwsgi/sites/uwsgi_params;
uwsgi_pass tempo-server;
}
}
这是我的uwsgi.ini
文件
[uwsgi]
chdir = /home/ubuntu/tempo
module = tempo.wsgi
home = /home/ubuntu/seatr/venv-seatr
master = true
processes = 10
socket = /home/ubuntu/tempo/tempo.sock
chmod-socket = 777
vacuum = true
此外,uwsgi启动没有错误,.sock文件也成功创建。
nginx error.log
显示:
2019/04/04 20:03:48 [error] 30261#30261: *9 upstream prematurely closed connection while reading response header from upstream, client: 129.219.8.129, server: X.YZ.ABC.DEF, request: "GET /admin HTTP/1.1", upstream: "uwsgi://unix:///home/ubuntu/tempo/tempo.sock:", host: "ec2-X-YZ-ABC-DEF.compute-1.amazonaws.com"
PS:我的网站启用(软链接)仅包含此tempo
文件,网站可用包含几个文件。
我已经在多个地方看到了这个问题,但没有答案:
该死的我的uwsgi_params文件完全是空的。因此,nginx无法发送“REQUEST_METHOD”等参数,从而导致上述错误。
我的uwsgi_params文件如下:
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
以上是关于self.method = environ ['REQUEST_METHOD']。upper()KeyError:'REQUEST_METHOD'使用uwsgi在EC2的主要内容,如果未能解决你的问题,请参考以下文章
Ruby中'self.method_name'和'class << self'之间的区别
php 关键字 public private protect final static const
论文笔记:nnU-Net: a self-configuring method for deep learning-based biomedical image segmentation