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。 首先&#…

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…

蜡笔小新里的钢达姆机器人怎么画_写字机器人好用吗? 组装就花了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;软件这…

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

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

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

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

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;你可能要根据文件名…

Lucene学习笔记(1)

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

android 录音原始文件_5分钟短文 | Android证书生成,签名,验证,虽然难,但学一次就够了!...

引言从Android演进开始&#xff0c;APK签名就已经成为Android的一部分&#xff0c;并且android要求所有Apks都必须先签名&#xff0c;然后才能将其安装在设备上。关于如何生成密钥以及如何签名的文章很多。一个Apk&#xff0c;但我们将从安全角度进行研究。在对Apk文件进行反编…

WCF跨域 这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP...

尝试向 URI“http://localhost:8001/AccountService.svc”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略&#xff0c;或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系&#xff0c;以发布跨域策略文件并确保该文件允许发送 SOAP 相关的…

go语言api源码中文版_Go语言学习——sync.map源码剖析

1.简介 最近看了下Sync包&#xff0c;详读了sync.map源码&#xff0c;感觉源码实现还是比较巧妙的&#xff0c;有不少可以学习的地方&#xff1b;在讲源码前&#xff0c;先看下sync.map的"历史"&#xff0c;从网上搜资料&#xff0c;sync.map是Go语言在1.9版本才引入…

怎么成为日上会员直邮_18个日上直邮问题汇总,可以参考一下哦

前段时间发的日上直邮的微头条和视频&#xff0c;很多朋友遇到一些不明白的地方&#xff0c;我把问题汇总了一下&#xff0c;统一回答一下哦其实因为疫情&#xff0c;很多免税店都在做活动&#xff0c;活动方式不太一样&#xff0c;有好多种&#xff0c;我跟大家分享的只是其中…

python中sort返回值_Python函数你真的都学会了吗?来看看这篇Python高阶函数!

二、高阶函数高级函数, 英文叫 Higher-order Function.那么什么是高阶函数呢?在说明什么是高阶函数之前, 我们需要对函数再做进一步的理解!2.1 函数的本质函数的本质是什么&#xff1f;函数和函数名到底是一种什么关系&#xff1f;在python中&#xff0c;一切皆对象&#xff0…

基于数据库的事务消息解决分布式事务方案

转载请注明出处&#xff1a;http://www.cnblogs.com/lizo/p/8516502.html 概述 当单库已不能支撑当前业务的时候&#xff0c;我们往往都考虑进行分库&#xff08;横向拆分或者纵向拆分&#xff09;。但分库有个无法回避的问题&#xff0c;就是事务问题。网上有很多分布式事务解…

中service层的作用_浅析Java中dto、dao、service、controller的四层结构

目前我所在的项目组采用的是SpringBoot框架&#xff0c;前端使用BootStrapjQuery。SpringBoot是BS开发框架之一&#xff0c;不用单独开启tomcat服务器&#xff0c;目前比较流行&#xff0c;一般开发大型项目时会将所有的功能细分为许多小模块&#xff0c;每个模块都有dto、dao、…

【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!...

Himi 原创&#xff0c; 欢迎转载&#xff0c;转载请在明显处注明&#xff01; 谢谢。 原文地址&#xff1a;http://blog.csdn.net/xiaominghimi/article/details/6937097 终于在11月公司的游戏即将上线了&#xff0c;那么对于iOS游戏来说当今都是内置道具收费属于主流&#xf…