linux 下 nginx+ uwsgi + Django 环境配置(亲测可用)

linux 下 nginx+ uwsgi + Django 环境配置(亲测可用),第1张

前提条件

nginx 安装:nginx 一键安装脚本https://blog.csdn.net/zxp3817100/article/details/53736100

python3+pip3 安装 :https://blog.csdn.net/zxp3817100/article/details/124674614?spm=1001.2014.3001.5501https://blog.csdn.net/zxp3817100/article/details/124674614?spm=1001.2014.3001.5501

uwsgi 安装:

uwsgi简易安装方法https://blog.csdn.net/zxp3817100/article/details/124674871

Django 安装:

        pip3 install Django==2.0

Django安装与配置教程(图解)本节介绍Django的安装,前文章节介绍,Django并不支持所有Python所有版本,Django对Python相应版本的支持,如下图: 教程选择安装的2.2.10版本,Django的官方网站提供了不同版本的下载:htthttp://c.biancheng.net/view/7455.html

配置文件处理

1、Django生成项目    

#建立软连接
ln -s /usr/local/python3.7/bin/django-admin /usr/bin/django-admin

进入目录
cd /usr/local/nginx/html/

#生成项目文件
django-admin startproject BookStore

#进入目录
cd BookStore/

#运行Django服务
python3 manage.py runserver

#测试运行
curl http://127.0.0.1:8000

2、配置uwsgi文件  

#配置uswgi文件
vim uwsgi.ini 

[uwsgi]
http-socket=192.168.56.100:8080
#对应项目路径 也就是Django 生成的
chdir=/usr/local/nginx/html/BookStore 
#wsgi-file=Bookstore/wsgi.py
#项目目录下的模块这个也填 不然运行不了
module=BookStore.wsgi
processes=4
threads=2
master=True


#运行uwsgi 
uwsgi -d --ini uwsgi.ini

3、 nginx配置处理

vim  /usr/local/nginx/conf/nginx.conf


#反代理模式
upstream uwsgi{
        server 192.168.56.100:8080; //uwsgi运行地址
    }

server {
    listen       80;
    server_name  localhost;
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
    location / {
        include /usr/local/nginx/conf/uwsgi_params
        proxy_pass http://uwsgi; # 通过反向代理和uWSGI服务器关联
        }
    localtion /static {
        alias /static; #静态文件放置路径
        }
    }

静态文件配置路径还需要

上面我们讲到 Nginx 可以实现动静分离,这个时候也需要配置,可以按照如下所示进行 *** 作,可以在  录下新建一个 static 目录与 static 目录,它们两者是前者包含后者的关系,然后在 settings.py 文件中进行如下配置:

STATIC_ROOT='/static'

配置完成成后在项目的 manage.py 文件下执行下述命令,收集静态文件:

python3 manage.py collectstatic 

重启nginx 然后浏览器访问

问题处理:

使用uwsgi+nginx运行django程序,出现报错,报错为:
Invalid HTTP_HOST header: 'xxx.com:82'. You may need to add u'xxx.com' to ALLOWED_HOSTS.
xxx.com为绑定的测试域名,82为端口

解决办法:
修改项目的setting.py配置文件


ALLOWED_HOSTS = []
改为
ALLOWED_HOSTS = ['*']

再次运行可以成功访问了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/904543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-15
下一篇 2022-05-15

发表评论

登录后才能评论

评论列表(0条)

保存