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,静态,REQUEST,KeyError,server,Nginx,报错,uwsgi 来源: https://www.cnblogs.com/bozhengheng/p/12182527.html