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

Django 项目分布式部署【UWSGI + NGINX】

使用 Gunicorn 和 nginx 部署 Django 项目

nginx 对django项目的部署

linux中部署django项目