centos7根据端口查进程_记录一次CentOs7下Nginx+WSGI部署Django项目(超详细)

599de1b7517a1d3c70694d0913f925f3.png

记录一次Django部署的文章,不是很熟悉Linux系统,踩了不少坑,本篇文章相当于是一个总结,我会在本文中详细介绍,部署单个Django项目和多个Django的方法,如读者有更好的方法,欢迎留言一起探讨~

长话短说,满满干货,先介绍部署单个Django项目的方法,本文是使用的服务器基于腾讯云的centos7,使用的python3版本,Django2.2

部署前的准备工作

1、更新系统

yum update -y

2、安装软件包和可能出现的依赖

yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel

3、下载python3

cd /usr/local # 我们将python3下载到这里

wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz

tar -zxvf Python-3.7.4.tgz # 解压

cd Python-3.7.4 # 进入python3.7.4路径

./configure --prefix=/usr/local/python3 # 编译安装到制定的目录,这样做是为了跟系统默认的python2.7的做有效的隔离

make
make install # 安装python3

ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3 # 安装完成之后 建立软链接 添加变量 方便在终端中直接用python3进的是python3的版本

ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3 # Python3安装完成之后pip3也一块安装完成,不需要再单独安装同样给pip3建立软链接

19da301d72bdde9c0a435821b99c06fd.png
保留了系统的python版本,又可以使用我们刚安装的python3版本

4、安装Django+uwsgi(强烈建议在虚拟环境安装,这样有利于版本隔离,由于本项目是练手项目未安装虚拟环境,直接在系统里安装)

pip3 install django # 安装Django

pip3 install uwsgi # 安装uwsgi

单个Django项目部署

切换到根目录创建www文件,这里面用于存放Django项目(根据个人习惯,你想在哪个目录存放都可以,毕竟服务器是你自己的嘛,爱咋玩儿咋玩儿~)

django-admin.py startproject demo # 创建一个名为demo的Django

b2c1e6149a2175a61447ce99a2a36939.png
demo是我们创建的Django项目

cd demo # 进入到demo项目

python3 manage.py startapp blog # 创建一个名为blog的应用

mkdir static # 创建一个存放静态文件的文件夹

mkdir templates # 创建一个存放模板的文件夹

vim /www/demo/demo/settings.py # 编辑Django的设置文件

b99e0e6837d9a8af16f0bb5aae184d51.png

修改3个地方,因为项目将部署上线,所以DEBUG模式改为False,ALLOWEDHOSTS修改加‘*’,表示任何ip都可访问,最后在INSTALLED_APPS里面引入我们的应用,这里填写的是Django刚刚创建的APP的名称。

os.path.join(BASE_DIR, 'templates') # TEMPLATES的DIRS里添加模板路径

006c3d5fa14184ee7073e77a3d888f89.png

STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'), # 在setting的尾部添加,然后 ZZ保存退出
)

vi /www/demo/templates/index.html # 创建index.html文件

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>我的网站</title>
</head>
<body>
<h1>欢迎erha光临我的网站!</h1>
</body>
</html>

写入html文件

vi /www/demo/demo/urls.py # 配置路由

from blog import views #导入views
urlpatterns = [
...
path('', views.index), #添加这行
....
]

d06ecea4344dffdcf70be13c0e92bfe1.png

vi /www/demo/blog/views.py
def index(request):
return render(request, 'index.html')

python3 manage.py runserver 0.0.0.0:8000 # 启动项目并查看

此时访问你的ip + 8000端口就能看到效果了

9566ca616465bf5148ad3c20358b074a.png
这里展示的页面就是我们写的HTML里面的页面

vi /www/demo/demo.xml # 创建一个demo.xml 文件并填写以下内容

<uwsgi>
<socket>127.0.0.1:8000</socket> <!-- 内部端口,自定义 -->
<chdir>/data/www/demo/</chdir> <!-- 项目路径 -->
<module>demo.wsgi</module> <!-- demo为wsgi.py所在目录名-->
<processes>4</processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>

安装Nginx与配置Nginx

1.进入home目录并执行以下命令

wget http://nginx.org/download/nginx-1.13.7.tar.gz # 下载Nginx安装包

2.解压

tar -zxvf nginx-1.13.7.tar.gz

3. 进入解压后的路径并编译

cd nginx-1.13.7

./configure
make
make install

nginx一般默认安装好的路径为/usr/local/nginx 在/usr/local/nginx/conf/中先备份一下nginx.conf文件

cp nginx.conf nginx.conf.bak

然后打开nginx.conf,把原来的内容删除,直接加入以下内容:

events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name www.bingpython.com; #改为自己的域名,没域名修改成ip
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000; #端口要和uwsgi里配置的一样
uwsgi_param UWSGI_SCRIPT demo.wsgi; #wsgi.py所在的目录名+.wsgi
uwsgi_param UWSGI_CHDIR /www/demo/; #项目路径
}
location /static/ {
alias /www/static/; #静态资源路径
}
}
}

进入 /www/demo/ 目录,启动uwsgi

uwsgi -x demo.xml

进入/usr/local/nginx/sbin/目录

先执行./nginx -t 测试一下Nginx是否配置正确

命令先检查配置文件是否有错,没有错就继续执行:

./nginx

终端没有任何提示就证明nginx启动成功。可以使用你的服务器地址查看,成功之后就会看到一个nginx欢迎页面。

进入到网站根目录,对应本项目的:

cd /www/demo

uwsgi -x demo.xml # 运行uwsgi文件

cd /usr/local/nginx/sbin/

执行:

./nginx -s reload # 重启Nginx

然后去访问你的域名,我的测试项目,这就部署单个项目成功了!下面这个测试项目我准备写一个Django教程,里面包含Django开发的个人博客教程&Django开发电商教程,现在还在优化之中,预计今年年中能够上新,欢迎广大程序猿小伙伴儿来撩呀~

我的网站​www.bingpython.com

关于Nginx部署多个项目教程我过几天抽时间了再来写,年底了有些忙啊~~~

部署Django项目的文章出炉啦,点击这里https://zhuanlan.zhihu.com/p/102154526

冰先生:CentOs7下Nginx+UWSGI部署Django项目(超详细)部署多个站点,建议先赞后收藏​zhuanlan.zhihu.com
822393cbb97dc0c9d38d371644fba33e.png

建议先赞后收藏!!!避免以后找不到喽!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267532.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

淘宝跨域获取Cookie分析

最近在发现使用Taobao的时候的一个小细节&#xff0c;于是便萌发起了写这篇文章。 当我们在 www.taobao.com 中进行登录之后&#xff0c;然后直接切换到 www.tmall.com 域名下&#xff0c;发现www.tmall.com首页的最顶部马上显示成了&#xff1a; 您好, andyfaces。 首先&#…

mqtt 传文件断开连接的原因_MQTT PythonClient断开连接不当

MikeScotty的回答不对。缺少的是启动MQTT网络循环。需要启动循环来处理发送keep-alive包、为QoS 1/2消息进行多段握手以及处理传入的订阅。在如果你只想保持联系或者10秒钟&#xff0c;那么这样的方法就可以了import paho.mqtt.client as mqttimport timeBroker "192.168…

JAVA方法 字符串与unicode的相互转换

unicode编码简而言之就是将每一个字符用16位2进制数标识。但是通常都用4位的16进制数标识。例如&#xff1a;1)中文字符串"你好"的unicode码为&#xff1a;\u<?XML:NAMESPACE PREFIX ST1 />4f60\u597d; 2)英文字符串"ab"的unicode码为&#xff1a;…

js原型和原型链

我们要理解js的原型&#xff0c;首先需要知道5条js原型规则&#xff1a; 1.js引用类型(function ,array ,object)都可以任意扩展自己的属性。 1 function fn(){2 3 }4 fn.age10;5 console.log(fn.age);//106 7 var arr[1,2,3];8 arr.namekeke;9 console.log(arr);//[1,2,3,name…

solaris 10安装Oracle10.2g

1> 检查相关的安装包 官方要求的包: SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt 执行命令 bash-3.00# pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot SUNWsprox SUNWtoo SUNWi1of SUNW…

蜡笔小新里的钢达姆机器人怎么画_写字机器人好用吗? 组装就花了5个小时 还要学习软件、录入字体...

据江苏公共新闻频道《新闻360》报道&#xff1a;新学期开学&#xff0c;各种各样的课后作业成了孩子和家长关注的话题。前不久&#xff0c;一条“孩子购买代写作业机器人&#xff0c;被家长发现”的新闻&#xff0c;引发了强烈争议。这种可以写字的机器人到底是什么&#xff1f…

20165235 Java第一周学习总结

(# 20165235 Java第一周学习总结 Ubuntu下git的安装与使用首先Ubuntu下git的安装&#xff0c;使用sudo apt-get install git下载Ubuntu,下载完成后可以用指令git查看。 安装完git之后输入git config --global user.name "名字"&#xff0c;git config --global user.…

解决opencv在pycharm中无代码自动提示的bug

2018-03-0422:19:39 首先&#xff0c;估计这不是bug 可能是我自己误操作导致的&#xff0c;但是让我搞了好久才搞定&#xff0c;实在是苦恼 如图已实现功能&#xff0c;百度里有很多朋友出现了&#xff0c;这个无代码提示的问题 大概是这样的&#xff0c;毕竟&#xff0c;软件这…

eBay:PayPal今年移动支付总额将超35亿美元

北京时间10月18日早间消息&#xff0c;eBay(微博) CEO约翰多诺霍(John Donahoe)周一在旧金山的Web 2.0峰会上表示&#xff0c;通过移动设备&#xff0c;PayPal今年处理的总支付额将超过35亿美元。 多诺霍此前曾预计&#xff0c;PayPal今年通过移动设备的总支付额为30亿美元&…

看风水用什么罗盘最好_兰花用什么花盆栽植最好?

兰花用什么花盆栽植最好&#xff1f;高低深浅如何选&#xff1f;文&#xff1a;花木君经常有兰友咨询关于兰花的花盆的问题&#xff0c;诸如用浅盆还是深盆&#xff0c;用什么材质的花盆适宜之类&#xff0c;由于品种不同&#xff0c;兰丛大小各异&#xff0c;如果泛泛的回答&a…

Shell 示例:利用 $RANDOM 产生随机整数

代码如下&#xff1a; #!/bin/bash# $RANDOM 在每次调用的时候&#xff0c;返回一个不同的随机整数 # 指定的范围是: 0 - 32767 MAXCOUNT10 count1echo echo "$MAXCOUNT random numbers:" echo "-----------------"while [ "$count" -le $MAXCOU…

发布到服务器接口404_接口测试怎么做?

上一期咱们讲到如何使用咱们的龙测工具实现黑盒测试这不&#xff0c;接口也来啦实验步骤抢先看1&#xff0e;首先确定接口的结构&#xff0c;以龙测登录为例请求方式&#xff1a;POSTURL&#xff1a;https://prod.dragontesting.com/api/login请求体&#xff1a;包含两个必填参…

畅通工程 HDU - 1863

省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通&#xff08;但不一定有直接的公路相连&#xff0c;只要能间接通过公路可达即可&#xff09;。经过调查评估&#xff0c;得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序&#xff0c;…

SoftReference和WeakReference

Java2增强了内存管理功能&#xff0c; 增加了一个java.lang.ref包&#xff0c;其中定义了三种引用类。这三种引用类分别为SoftReference、WeakReference和PhantomReference.通过使用这些引用类&#xff0c;程序员可以在一定程度与GC进行交互&#xff0c;以便改善GC的工作效率。…

docker ubuntu 文件同步_Docker 的数据管理--Docker从入门到精通摘记

Docker 数据管理用户在使用 Docker 的过程中&#xff0c;‍‍往往需要能够查看容器内应用产生的数据&#xff0c;‍‍或者说‍‍需要把容器内的数据进行备份&#xff0c;‍‍再或者说‍‍多个容器之间需要进行数据的共享&#xff0c;‍‍那么这些就必然涉及到容器的数据管理操作…

杂项:UN-APP

ylbtech-杂项&#xff1a;APP1.返回顶部 2.返回顶部3.返回顶部4.返回顶部5.返回顶部 6.返回顶部7.返回顶部8.返回顶部9.返回顶部 10.返回顶部11.返回顶部12.返回顶部13.返回顶部14.返回顶部15.返回顶部 1、https://baike.baidu.com/item/%E6%89%8B%E6%9C%BA%E8%BD%AF%E4%BB%B62…

ubuntu上网慢的问题

2019独角兽企业重金招聘Python工程师标准>>> 测试用的是ubuntu11.10&#xff0c;教育网宽带&#xff0c;静态IP&#xff0c;无路由 如果用的是路由的应该不会很慢吧&#xff0c;路由自带DNS缓存功能的,本地DNS缓存就没有必要了 建立本地DNS缓存: (1) 安装DNS缓存软件…

c include 多层目录_Rsync 秒杀一切备份工具,你能手动屏蔽某些目录吗?

转自&#xff1a;高效运维引言Rsync 是一种快速且通用的命令行实用程序&#xff0c;可通过远程shell在两个位置之间同步文件和文件夹。使用 Rsync&#xff0c;可以镜像数据&#xff0c;创建增量备份&#xff0c;并在系统之间复制文件。复制数据时&#xff0c;你可能要根据文件名…

第2章 一切都是对象

第2章一切都是对象 对象的定义(类型)、创建、存储、操纵、销毁、组成&#xff0c;引用(基本变量名)的初始化 2.1 用引用操纵对象 编程语言操纵内存中元素的方式&#xff1a; C、C&#xff1a;基于特殊语法的间接表示—指针 Java&#xff1a;操纵对象引用 ->对象 创建引用…

Lucene学习笔记(1)

Lucene学习笔记可以搜索文本文件&#xff0c;理论上可以搜索任何类型的数据。只要先把数据转化为文本&#xff0c;就可以对数据进行索引和搜索。使用了反向索引的机制&#xff0c;维护一个词/短语的表&#xff0c;对于每个词和短语都有一个链表描述有哪些文档包含这个词和短语。…