centos 下部署django nginx+uwsgi
为了建立一个工作站,也是麻烦了....
感谢该博主:
https://www.cnblogs.com/levelksk/p/7921066.html
1.安装centos 后首先安装python,下载解压安装和以前一样,但是注意 python3.7使用起来在 pycharm下建立django遇到bug,可能是我的pycharm版本不够高的原因吧。
后来重新安装python3.6,故障解除。
2.
(nginx+uwsgi+python3+django) 使用该方式,注意尽量开启root来配置,不然会出现各种问题
在早期使用ubuntu遇到众多问题,无奈放弃,转到centos,ubuntu用起来也不够稳定,亟待加强.
3.来源于该博主文章,是一个可靠的博文,没有遇到其他异常状况
1、安装各类基础模块
yum gcc-c++
注:此命令我没有运行成功
(为centos系统增加编译功能)
yum install wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
注:此命令正常
(安装这些模块都是为了成功编译安装python3,防止出现各种异常)
yum install libxml*
注:此命令正常
(安装这个模块是为了让uwsig支持使用“-x"选项,能通过xml文件启动项目)
2、编译安装python3(我已经安装好了python3.6所以跳过此步骤)
进入home路径(本人喜欢把东西都下载到这里),执行以下命令:
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
下载完成后,执行解压命令:
tar -zxvf Python-3.6..tar.gz
进入解压后的Python-3.6.3文件夹,依次执行以下命令
./configure --prefix=/usr/local/python3
(将python3安装到/usr/local/python3/路径下)
make -j2
make install -j2
ln -s /usr/local/python3/bin/python3. /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
注:此命令正常
(以上两个ln命令是为了方便在终端中直接使用python3和pip3命令 )
3、给python3安装django和uwsgi以及配置启动项目的xml文件
pip3 install django
pip3 install uwsgi
注:此命令正常
为了在终端中使用uwsgi命令,执行以下命令
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3
将你的django项目放到你想放的路径下,例如/home/www/,假设我们的Django项目名为"myproject",里面有一个应用叫"myapp"
在你的django项目下新建 myproject.xml,内容如下:
<uwsgi>
<socket>127.0.0.1:</socket><!-- 内部端口,自定义 -->
<chdir>/home/www/myproject</chdir><!-- 项目路径 -->
<module>myproject.wsgi</module>
<processes></processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>
wq保存
注:此命令正常,对于用不惯Vm的人来说,gedit是个好的选择,注意打开文件要用 root不然提示没有权限。其中有很多命令都需要root,如果狐仙莫名其妙的问题
请开启root
4、安装nginx和配置nginx.conf文件
进入home目录,执行以下命令:
wget http://nginx.org/download/nginx-1.13.7.tar.gz
注:此命令正常
下载完成后,执行解压命令:
tar -zxvf nginx-1.13..tar.gz
注:此命令正常
进入解压后的nginx-1.13.7文件夹,依次执行以下命令:
注意要进入nginx-1.13.7文件夹执行以下命令
cd nginx-1.13.7
./configure
make&make install
注:此命令正常 ,注意要root权限
nginx一般默认安装好的路径为/usr/local/nginx
在/usr/local/nginx/conf/中打开nginx.conf,加入以下内容
cd /usr/local/nginx/conf/
server {
listen ; #暴露给外部访问的端口
server_name localhost;
charset utf-;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:; #外部访问8996就转发到内部8997
}
location /static/ {
alias /home/www/myproject/myapp/static/; #项目静态路径设置
}
}
(以上内容请保证在默认内容的大括号内)
注:此命令正常,nginx.conf 文件下面就有这几行你解注释就好了
有必要说明这种
nginx+uwsgi
工作原理:
nginx负责建立一个本地的工作环境,就是本地服务器,类似于pycharm的 run调试django一样,可以打开一个 http:127.0.0.1的本地服务页面
并开启一个可使用的端口。
uwsgi 负责转发,将外网发过来的请求转发给 nginx,nginx就像处理内部访问一样来处理请求。(所以他们的端口明显不一样)
wq保存后进入/usr/local/nginx/sbin/目录
执行
cd /usr/local/nginx/sbin/
./nginx -t
此命令需要root不然报错
命令先检查配置文件是否有错,没有错就执行以下命令:
./nginx
终止
pkill - nginx
终端没有任何提示就证明nginx启动成功,可以通过链接查看nginx是否启动成功:
http://192.168.1.111 (请将该ip替换成你的服务器ip)
注:你可以输入来避免输入ip
localhost
5、访问项目页面
进入你的django项目路径,执行以下命令:
uwsgi3 -x myproject.xml
注:执行该xml后django就算是启动了,内部的nginx服务也将被启动,uwsgi将能够连接到nginx的服务了,此时网络应该是通畅的了。
以上步骤都没有出错的话,打开你的浏览器,输入以下链接,记得关闭系统防火墙或者开放8996端口
http://192.168.1.111:8996 (请将该ip替换成你的服务器ip)
网站访问成功!
localhost:
注:你可以输入来避免输入ip,此时将能够访问Django的网页了,enjoy yourself

释疑:localhost 在本地就是没有特别的意义,一旦摇了服务器,我们就可以输入服务器地址访问了
centos 下部署django nginx+uwsgi的更多相关文章
- CentOS上部署Django+Nginx+Uwsgi环境
在CentOS上部署Django+Nginx+Uwsgi环境 奇谭 2016-09-01 评论 Linux python django nginx uwsgi VirtualEnv的作用:创建隔 ...
- CentOS7部署Django,nginx,uwsgi,redis
前期准备 把所有的软件都传到这个tools文件夹 cd - mkdir tools cd tools/ mkdir /application 安装nginx yum install pcre pcre ...
- CentOS 6.5下安装Python+Django+Nginx+uWSGI
1.安装Python31.1先安装zlib库及其他三方库安装uWSGI时需要使用zlib,否则执行python uwsgiconfig.py --build时会报ImportError,就是因为在安装 ...
- 阿里云Centos+Django+Nginx+uWSGI
针对系统中自带的Python2.7版本 1.安装python-devel yum install python-devel 2.安装uwsgi pip install uwsgi 3.测试uwsgi是 ...
- ubuntu+Django + nginx + uwsgi 部署
ubuntu+Django + nginx + uwsgi 部署 0.前期准备 注意:以下几件事都必须在激活虚拟环境下完成 运行以下命令生成项目所需的依赖列表,会在项目根目录生成一个requireme ...
- CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目
原本之前有一部分东西是在Windows Server,但是由于Gunicorn不支持Windows部署起来颇为麻烦.最近转战CentOS,折腾一段时间,终于简单部署成功.CentOS新手,作为一个总结 ...
- Linux 下部署Django项目
Linux 下部署Django项目 说明:本文所使用的环境为CentOS 6+Python2.7+Django1.11 安装Django.Nginx和uWSGI 1.确定已经安装了2.7版本的Py ...
- Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 闲着无聊的时候部署了一个Django项目玩,用vm虚拟机部署的. 准备工作 我使用的系统是Ubuntu16 ...
- 吴裕雄--天生自然Django框架开发笔记:Django Nginx+uwsgi 安装配置
Django Nginx+uwsgi 安装配置 使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,需要一个可以稳定而持续的服务器,比如 ...
随机推荐
- 关于ř与tableau的集成---- k均值聚类
1.利用R内置数据集iris: 2.通过Rserve 包连接tableau,服务器:localhost,默认端口6311: 3.加载数据集iris: 4.编辑字段:Cluster <span s ...
- Linux中搭建一个ftp服务器详解
来源:Linux社区 作者:luzhi1024 详解Linux中搭建一个ftp服务器. ftp工作是会启动两个通道:控制通道 , 数据通道在ftp协议中,控制连接均是由客户端发起的,而数据连接有两种 ...
- swoole+Redis实现实时数据推送
<?php /** * *************************************** * 单进程保护 * * ********************************* ...
- CSS中的继承
继承:子元素继承父元素的样式,但是并不是所有属性都是默认继承的. 通过文档中的 inherited:yes 来判断属性是否可以继承,关于继承可以参见css的继承关键字: 一.无继承性的属性 1.dis ...
- KMP算法——从入门到懵逼到了解
本博文參考http://blog.csdn.net/v_july_v/article/details/7041827 关于其它字符串匹配算法见http://blog.csdn.net/WINCOL/a ...
- 把上传过来的多张图片拼接转为PDF的实现代码
以下是把上传过来的多张图片拼接转为PDF的实现代码,不在本地存储上传上来的图片,下面是2中做法,推荐第一种,把pdf直接存储到DB中比较安全. 如果需要在服务器上存储客户端上传的文件时,切记存储文件时 ...
- 解决百度云推送通知,不显示默认Notification
问题:百度云推送通知,不显示默认Notification 描述:采用推送消息的方式,可以在onMessage方法里面获取到推送的消息.另外推送通知也有获取到内容,后台日志也有show private ...
- 【九天教您南方cass 9.1】 14 坐标数据的纠正
同学们大家好,欢迎收看由老王测量上班记出品的cass9.1视频课程 我是本节课主讲老师九天. 我们讲课的教程附件也是共享的,请注意索取 在测量空间中. 九天老师的联系方式 点击直接请教九天老师吧! ...
- 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-6底层驱动之多路开关选择器
视频简介:该视频介绍iCore3应用开发平台中多路开关选择器的应用,多路开关选择器的硬件电路连接以及软件实现的方法. 源视频包下载地址:链接:http://pan.baidu.com/s/1geQ4W ...
- SOLID原则 【转】
S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编码原则(Programming Priciple)的首字母缩写. 面向对象设计的原则 SRP The Single ...