在服务器上uwsgi+nginx部署Django项目

Django项目开发完毕,开发完成后用如下命令收集所有的包

pip freeze > plist.txt

本地测试正常运行之就可以部署到服务器上,我把我的真个部署过程分享出来,从域名和服务器的购买到虚拟环境、uwsgi和nginx的安装配置。希望对有需要的开发人员有所帮助。我的服务器环境是Ubuntu 16.04。

1、域名购买

购买域名可以到阿里云 万网:https://wanwang.aliyun.com/ 查询并购买,部分后缀的域名需要实名认证,自己查看网站上的相关提示信息.

2、服务器的购买

 

我的服务器是在搬瓦工购买的,详细内容可以看我之前的博文:搬瓦工(BandwagonHost VPS)购买并配置自己的服务器,以及用xshell登录自己的服务器,地址:http://blog.csdn.net/c2366994582/article/details/79251914,我的服务器配置为Ubuntu16.04,购买服务器之后会有一个ip地址,然后回到购买域名的地方,把自己的域名解析为自己购买的ip地址。

3、用Xshell登录服务器

详见:利用Xshell登录虚拟机和服务器,地址:http://blog.csdn.net/c2366994582/article/details/79252042

4、用root用户登录之后,我们一般不在root用户下去部署,需要新建一个用户,使用useradd命令添加一个用户,命令详情如下

我新添加的用户名为:python,切换到python用户

5、创建虚拟环境

虚拟环境的安装配置可以看这篇博文:http://blog.csdn.net/emperor_cj/article/details/78603026,我新建的虚拟环境名称为h1

6、虚拟环境下安装所需要的包

把自己的项目文件放在/home/python/projects目录下,我的项目名称为myproject,我的项目目录就是/home/python/projects/myproject,切换到虚拟环境:workon h1(h1是我的虚拟环境名称),使用命令

pip install -r plist.txt

安装所需要的包。

7、更改settings文件

 

DEBUG = False
ALLOW_HOSTS=['*',]表示可以访问服务器的ip

8、uwsgi的安装和配置

 

  • uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器
  • uWSGI代码完全用C编写
  • 安装uWSGI
pip install uwsgi
  • 配置uWSGI,在项目中新建文件uwsgi.ini,编写如下配置
[uwsgi]
socket=外网ip:端口(使用nginx连接时,使用socket)
http=外网ip:端口(直接做web服务器,使用http)
chdir=项目根目录
wsgi-file=项目中wsgi.py文件的目录,相对于项目根目录
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uswgi.log

我的uwsgi.ini文件配置如下,uwsgi.ini文件位于项目根目录下,我的项目目录为myproject,如下

我的uwsgi.ini文件内容如下:

[uwsgi]
socket=184.170.221.171:8000
chdir=/home/python/project/myproject
wsgi-file=myproject/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid

daemonize=uswgi.log

说明:184.170.221.171是我的服务器地址,/home/python/project/myproject是我的项目根目录,myproject是我的项目名称,后面部分相同即可

  • 启动:uwsgi --ini uwsgi.ini
  • 停止:uwsgi --stop uwsgi.pid
  • 重启:uwsgi --reload uwsgi.pid
  • 使用http协议查看网站运行情况,运行正常,但是静态文件无法加载

可以使用 ps ajx|grep uwsgi命令查看uwsgi是否启动

9、静态文件

10、安装配置nginx

使用如下命令安装nginx

 

sudo apt-get install nginx

默认安装位置为/etc/nginx,该目录下有一个nginx.conf文件,使用cat命令查看该文件,发现配置文件位于conf.d文件夹里面

打开conf.d文件夹,使用vi编辑器编辑default.conf文件

编辑前:

编辑后:

注意:编辑前后只有红色方框内的内容发生了变化。

重启uwsgi和nginx,可使用 ps ajx|grep nginx查看nginx是否启动成功

至此,整个部署过程完成。

如果nginx安装部分有问题,查看https://blog.csdn.net/c2366994582/article/details/81909638,这里面nginx直接在nginx.conf里面配置,无需包含到其他文件。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2022 / 01/ 30: 新版esptool 刷micropython固件指令不是 esptool.py cmd... 而是 esptool cmd... 即可;另外rshell 在 >= python 3.10 的时候出错解决方法可以查看:  已于2022年发布的: 第二章:修复rshell在python3.10出错 免费内容: https://edu.csdn.net/course/detail/29666 micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。为记录单片机传输过来的数据, 本教程会教大家入门数据库。  本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 本教程micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。  学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值