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';
}
  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM