Nginx部署Django项目报错 KeyError: 'REQUEST_METHOD'
Posted bozhengheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx部署Django项目报错 KeyError: 'REQUEST_METHOD'相关的知识,希望对你有一定的参考价值。
这个问题是应为nginx的配置文件有问题;
要使用uwsgi启动Django的话要有以下配置:
upstream djangos14{ # nginx负载均衡配置; server 10.0.0.10:9999; #server 10.0.0.11:80; } server { listen 80; server_name www.s14hanju.com; location / { # 要使用uwsgi,代理就不要用proxy_pass了,要使用uwsgi_pass; uwsgi_pass djangos14; # 要指定Nginx安装目录下的conf文件下的uwsgi_params文件的绝对路径; include /opt/nginx1-12/conf/uwsgi_params; root /data/hanju; index index.html index.htm; } location /status { stub_status on; }
然后要在虚拟环境中的Django项目中的manager。py文件同级目录中创建 uwsgi。ini文件,作为启动初始化
[uwsgi] #项目的绝对路径,定位到项目的第一层 chdir = /root/Desktop/NB_crm #指明项目的wsgi文件路径 module = NB_crm.wsgi #指明你的虚拟解释器的第一层路径 home = /root/Envs/nbcrm #指明通过uwsgi,启动多少个进程 processes = 5 #非常重要 #非常重要 #非常重要 #如果你已经配置了nginx(启动了nginx服务,配置了uwsgi_pass),请用这个socket连接 socket = 0.0.0.0:9999 #如果你没用nginx,想通过uwsgi直接启动web服务,指明http协议 #http = 0.0.0.0:9999 #在退出uwsgi环境后,清空环境变量 vacuum = true
但是这样起来的项目是没有静态文件的,应为uwsgi不支持静态文件的解析,所以要手动收集项目中的静态文件,
需要配置项目的setting.py文件,添加路径
STATIC_ROOT=‘/root/Desktop/static‘
指定静态文件的收集目录,在执行命令
通过python3 manage.py collectstatic 收集所有你使用的静态文件保存到STATIC_ROOT!
然后使用Nginx指定静态文件位置STATIC_ROOT,转发静态请求。
location /static{ alias ‘/opt/static‘; }
以上是关于Nginx部署Django项目报错 KeyError: 'REQUEST_METHOD'的主要内容,如果未能解决你的问题,请参考以下文章
本地环境安装nginx报错,提示无GCC,GCC部署完了,执行GCC的./configure还是报错,该咋办
在数字海洋上部署 Django、Gunicorn、Nginx、Virtualenv 给我 502 Bad Gateway & Gunicorn can't read Secret Key