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稳定版本就可以。

二、配置环境

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,如何在Linux下使用Nginx部署Django项目相关推荐

  1. linux系统export,Linux入门进阶 - 如何在Linux中使用export命令

    原标题:Linux入门进阶 - 如何在Linux中使用export命令 来自: Linux迷 链接:https://www.linuxmi.com/linux-export.html Linux ex ...

  2. 超详细Windows环境下使用Apache部署Django项目教程

    目录 超详细Windows环境下使用Apache部署Django项目教程 1.什么是Apache 2.安装并配置Apache 2.1 下载Apache 2.2 解压Apache到文件夹 2.3 配置c ...

  3. linux安装多版本php_Linux系统下为Nginx安装多版本PHP

    我们在安装配置服务器LNPM环境时应该考虑到PHP多版本并存的问题,下面是实现Linux系统下为Nginx安装多版本PHP的实现方法 linux版本:64位CentOS 6.4 Nginx版本:ngi ...

  4. r语言在linux怎么实现,如何在linux环境下使用r语言

    如何在linux环境下使用r语言 真朱丶379 | 浏览 1974 次 发布于2015-12-23 13:05 最佳答案 1.下载 wget http://mirror.bjtu.edu.cn/cra ...

  5. 360无线网卡linux驱动下载,如何在Linux下写无线网卡的驱动

    满意答案 如所指的是如何在Linux下载无线网卡的驱动,具体操作步骤如下:(1)先确定无线网卡型号,因驱动安装和型号是密切相关的,不同的型号,安装和下载驱动有所不同,但原理是一样的.图例为无线网卡型号 ...

  6. linux nginx rpm 安装配置,Centos下安装nginx rpm包

    1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html wget http://nginx.org/packages/centos/6 ...

  7. 录音 linux 监听,如何在Linux下设置录音笔时间

    买了一个录音笔,效果比使用笔记本话筒录音好多了还省电.当然啦,我也曾试过使用手机录音,结果是,没能录多久就中断了(Android 就是这么不靠谱). 我的录音需要记录较为准确的时间信息.录音笔怎么知道 ...

  8. [转]Docker部署Django由浅入深系列(下): 八步部署Django+Uwsgi+Nginx+MySQL+Redis

    在上篇教程中,我们手动构建了两个容器,一个容器放Django + Uwsgi,另一个容器放Nginx,成功部署了一个简单的Django项目.然而在实际的生产环境中,我们往往需要定义数量庞大的 dock ...

  9. 如何部署linux服务器,CRAP-API——如何在Linux服务器部署CRAP-API教程

    标签:trade   使用   format   ade   cer   art   files   朋友   linux 前言 之前一直用的eolinker的免费版,但是人数有限,所以想找个免费开源 ...

最新文章

  1. 腾讯云数据库副总监:图数据库好在哪?该用在哪?
  2. 参数迁移表达的第三种形态相互作用
  3. 蓝桥杯_算法训练_矩阵乘法
  4. 编码 Unicode utf-8
  5. UVALive - 3126 Taxi Cab Scheme(最小路径覆盖-二分图最大匹配)
  6. Nessus安全测试插件编写教程(2)
  7. QuickSkin简单学习--控制结构
  8. 看完这些干货帖,大数据产品从入门到精通
  9. Android性能优化:使用Lint优化代码、去除多余资源
  10. 生日特惠餐厅 北京_黑色星期五特惠终极指南
  11. WPF RichTextBox设置文本颜色
  12. Windows下QT5.9构建的debug或release文件打包后不能使用
  13. 微信支付商户平台:商户简称
  14. 怎么把日程提醒放在手机桌面
  15. 装箱与拆箱(TDB)
  16. python浪漫告白源代码_python七夕浪漫表白源码
  17. BUCT数据结构——图
  18. 第15节-热区Hot Spots | 剑雨Axure RP9系列【基础】
  19. ORACLE OCP 考试指南
  20. beta值是一种风险指数

热门文章

  1. redis key命名规范_redis简介
  2. python爬取京东手机参数_python抓取京东小米8手机配置信息
  3. Shell else if mysql_linux shell中 if else以及大于、小于、等于逻辑表达式介绍
  4. c语言学习-从键盘输入10个字符,按照字典顺序将其排序输出(二维字符数组)
  5. 迷你星域冒险服务器维护中,迷你世界星域冒险
  6. .net core精彩实例分享 -- 应用启动
  7. 使用Protobuf推动微服务和REST API的开发
  8. mysql jdbc百度_mysql8.0 jdbc连接注意事项
  9. 华为鸿蒙系统适应手机,魅族宣布接入鸿蒙生态,成为国内首家积极响应并支持华为的国内厂商...
  10. python的array从0开始吗_为什么数组是从0开始的