美文网首页
如何在Linux下使用Nginx部署Django项目

如何在Linux下使用Nginx部署Django项目

作者: 富竹 | 来源:发表于2020-10-28 10:10 被阅读0次

    Django项目使用nginx + uwsgi进行部署,是比较常见的方式。

    系统环境

    这里列出自己的,就算不一样也不用太担心。

    Liunx系统版本:CentOS Linux release 7.8.2003 (Core)
    Python版本:3.7.7
    Django版本:3.1.2
    uWSGI版本:2.0.19.1
    Nginx版本:1.18.0

    一、准备工作

    1.安装uwsgi

    $ pip install uwsgi
    

    2.下载nginx

    下载nginx的Stable version稳定版本就可以。

    下载地址:http://nginx.org/en/download.html

    二、配置环境

    1.配置uwsgi.ini

    新建一个名为uwsgi.ini的文件,写入以下内容,之后放入django项目文件夹的根目录里。

    [uwsgi]
    
    socket = :8888
    chdir = /home/test_web
    module = test_web.wsgi
    master = true
    processes = 4
    vacuum = true
    

    test_web:是测试用的django项目文件夹。
    socket:是端口号,尽量避开默认的80,8080等端口。
    chdir:指定django项目文件夹。
    module:相当于指定django项目文件夹下,test_web文件夹里的wsgi.py文件。
    master: 允许主进程存在。
    processes: 开启的进程数量。
    vacuum: 当服务器退出的时候自动清理环境,删除 unix socket 文件和 pid 文件。

    uwsgi.ini文件放置路径示例,看最下面一行。

    test_web/
    ├── db.sqlite3
    ├── manage.py
    ├── test_web
    │   ├── asgi.py
    │   ├── __init__.py
    │   ├── __pycache__
    │   ├── settings.py
    │   ├── urls.py
    │   └── wsgi.py
    └── uwsgi.ini
    

    2.安装配置nginx

    2.1.安装nginx所需的依赖

    $ yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
    

    2.2.安装nginx

    下面的5条命令依次执行就可以了。

    $ tar -zxvf nginx-1.18.0.tar.gz
    $ cd nginx-1.18.0
    $ ./configure --prefix=/usr/local/nginx
    $ make
    $ make install
    

    2.3.修改nginx配置

    打开nginx.conf配置文件,照着下方的图片,修改或添加配置。

    $ vi /usr/local/nginx/conf/nginx.conf
    

    listen:指定端口,可以自由指定。
    server_name:服务器的地址,可以是ip或者域名

    location /:
    include uwsgi_params:是固定用法。
    uwsgi_pass 127.0.0.1:8888:127.0.0.1是固定用法,8888是必须和uwsgi.ini文件里的端口保持一致。

    location /static:
    需要注意的是alias,指的是静态文件的存放地址。django项目使用nginx部署后,admin后台管理界面会出现样式丢失的问题,不用担心,接下来会在django settings.py里进行配置,现在指定好nginx要用的静态文件目录就行。

    这样nginx就配置好了,过一会再进行启动,现在先完成接下来的配置。

    3.修改django settings.py

    DEBUG = False
    ALLOWED_HOSTS = ['*']
    
    # 最下面添加一行,和nginx的location /static配置里的是同一个地址。
    STATIC_ROOT = '/home/test_web/static/'
    

    接下来依次运行下面3条命令就可以了,其目的是把django admin后台管理界面的css样式和js文件,导入到我们刚才创建的静态文件夹里面。

    $ cd test_web
    $ mkdir static
    $ python manage.py collectstatic
    

    三、启动项目

    1.启动nginx

    $ /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    

    2.启动uwsgi

    $ cd test_web
    $ uwsgi --ini uwsgi.ini
    

    3.浏览器访问ip或者域名就可以了。

    看下面这张图的网址,就是我们在nginx里配置的地址。

    相关文章

      网友评论

          本文标题:如何在Linux下使用Nginx部署Django项目

          本文链接:https://www.haomeiwen.com/subject/ggkqvktx.html