当前位置: 首页 > 编程日记 > 正文

CentOS6.5下Gunicorn+Django+nginx部署的过程

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

本文假设你已经在CentOS下使用Python manage.py runserver 0.0.0.0:8080,能够顺利跑起来,并且被外网访问到了。项目名假设为:blog_project

安装nginx

yum -y install nginx


如果安装不了或者找不到nginx的源,则手动添加文件:/etc/yum.repos.d/nginx.repo

在里面填入:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

然后再执行一次

yum -y install nginx

配置成开机启动,并手动启动nginx服务:

chkconfig nginx on
service nginx start

打开80端口

假如80端口没有打开,需要打开80端口

centos开启80端口

1、开启80端口命令:/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

2、保存配置 命令:/etc/rc.d/init.d/iptables save

3、重启服务命令 :/etc/rc.d/init.d/iptables restart

4、查看已经开放的端口: /etc/init.d/iptables status

使用浏览器访问下,看下能不能出现nginx的欢迎页。若能成功访问,则进入下面的过程。

安装gunicorn

pip install gunicorn

在项目文件夹下新建nginx的配置文件nginx.conf

server{listen 80;resolver 8.8.8.8;access_log /home/webroot/www/public/blog_project/nginx.access.log;
​​​​​​​    error_log /home/webroot/www/public/blog_project/nginx.error.log;location / {proxy_pass http://127.0.0.1:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

若涉及到静态文件和上传文件夹,在server节点下,增加如下节点。路径名要改成你自己的目录地址

location /media  {alias /root/mysite.com/media/;
}
location /static {alias /root/mysite.com/static/;
}


将其链接到 /etc/nginx/conf.d/blog_project.conf (需要root帐号权限或者sudo)

sudo ln -s /home/shawn/blog_project/nginx.conf /etc/nginx/conf.d/blog_project.conf

注意:此处也有朋友使用的是将/etc/nginx/sites-available/default文件,修改成如上步骤的配置。
这里作用是一样的。后来我部署新的服务器,就是用的这个方法。

同时,必须把nginx.conf里server_name后面的内容(localhost)加入到 settings.py里的ALLOWED_HOSTS,或者用*代替

ALLOWED_HOSTS = ['*']

确认源代码目录文件权限

最后一点,确认源代码文件夹的访问权限,最后一步在把所有文件的权限设置为777。nginx运行的时候,是在nginx.conf中配置的用户来运行的,不是你当前登录的用户,权限也会导致比较诡异的问题。这个最后一步要格外注意下。

运行

先将nginx restart一下:

service nginx restart

运行如下命令后,使用浏览器看看吧

nohup gunicorn blog_project.wsgi:application -b 127.0.0.1:8080 >gunicorn_out.log &


开机启动

gunicorn运行,需要加入到开机启动中:
并且加入到开机启动相关的 /etc/rc.local 中,
在exit 0的前面填入:

nohup /root/.virtualenvs/django/bin/gunicorn  --chdir /var/ftp_root/web/scrapy_smzdm_web scrapy_smzdm_web.wsgi:application -b 127.0.0.1:8080>gunicorn_out.log &

其中gunicorn,一定要把目录也要跟上,否则系统找不到目录。一般目录时位于项目所用虚拟目录的bin下。我这里是:/root/.virtualenvs/django/bin/gunicorn

--chdir /var/ftp_root/web/scrapy_smzdm_web 意思是切换到项目所在的目录


关于部署的流程这篇文章讲的也比较详细,请参考:
http://blog.csdn.net/autoliuweijie/article/details/50286463
关于配置服务器的整个流程,这篇文章写的相当详细,不过是基于Ubuntu的,从0开始配置:
http://zmrenwu.com/post/20/

本文配置文件参考
http://blog.csdn.net/zhu_free/article/details/50522868

转载于:https://my.oschina.net/u/2396236/blog/1549613

相关文章:

c7pro android7,三星c7pro和iphone7哪个值得买?三星Galaxy c7 pro和苹果iphone7区别对比详细评测...

三星c7 pro介绍:三星C7 Pro三星C7 Pro可以看作是去年底上市的三星C9 Pro低配版,屏幕变小了,硬件配置也有所降低,不过配备了骁龙625升级版的骁龙626处理器,硬件方面也是颇具看点的,以下是手机详细参数。三星…

NIPS2018 | 腾讯AI Lab入选20篇论文,含2篇Spotlight

1.7亿条数据,比胡同和撸串更真实的北京35岁IT老兵,转型AI,我做错了吗?厉害了,天刚一冷程序员就都换上了衬衫……如何用Python&Fabric打造区块链“淘宝”商城Python 3 字符串中的 STR 和 Bytes 究竟有什么区别&…

windows查看端口占用以及关闭相应的进程

开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列" 经常,我们在启动应用的时候发现系统需要的端…

bzoj 2730: [HNOI2012]矿场搭建——tarjan求点双

Description 煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有…

华为鸿蒙手机官网价格表,曝下半年华为将推出两款鸿蒙手机:国内独享,价格良心...

虽然发声表示自己将全力支持安卓系统,维护安卓生态,但又推出了鸿蒙操作系统,余承东还表示鸿蒙系统取代安卓系统只需要1-2天即可。从这番表态来看,华为应该后续是要安卓鸿蒙两手抓了。安卓系统照常使用,而鸿蒙系统也会进…

PocketPC 全屏的实现

在windows mobile 5.0中实现全屏的方法,和隐藏SIP的方法差不多,只要稍稍改一下就可以了:::CommandBar_Show(m_hWnd, FALSE);//隐藏菜单 ::SHFullScreen(m_hWnd,SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON);//隐藏taskbar与sipSetForegroundWindo…

AI时代,谈数据分析时我们要谈些什么?

参加 2018 AI开发者大会,请点击大会官网 说起数据分析,你能想到的是什么? 根据维基百科的定义,数据分析是一类统计方法,其主要特点是多维性和描述性。有些几何方法有助于揭示不同的数据之间存在的关系,并绘…

清瘦的记录者: 一个比dbutils更小巧、好用的的持久化工具

https://gitee.com/bitprince/memory 1. 概述 1.1 连接、语句和结果集 从JDBC的规范上看,其对数据访问层有相当简洁的抽象:1、连接(connection) 2、语句(statement)、3结果集(result set)。我们对数据库做的事情无非:连接数据库,执…

html 显示消息数量,html实现消息按钮上的数量角标的实例详解

这篇文章主要介绍了html在消息按钮上增加数量角标的实现代码,需要的朋友可以参考下html代码:消息4css代码:/*角标 */.ii{display: none;background: #f00;border-radius: 50%;width: 20px;height: 20px;top: 5px;right: 0px;position: absolute;text-ali…

为什么让A.I.“顶天立地”需要6个多月?

在A.I.的发展中,专注技术or专注应用?这从来不是一道选择题。“技术顶天,应用落地,希望全社会的开发者可以和我们一起开放创新、共建A.I.生态。”2018年3月22日,在科大讯飞主办的「AI大学未来课栈上海栈」,科…

[ASP.NET]状态管理[摘自C#入门经典]

[出处]:来自《C#入门经典》第三版中文版,P505-P506[涉及]:1、状态管理[附注]:看到这个表格总结得还是相当不错的,就摘抄下来了,兴许你看过,但没太在意,那就再看看吧.[正文]:HTTP协议是无状态的。从客户端到服务器的连接…

html表单颜色选择器,如何在Django管理中使用HTML5颜色选择器

我试图在Django的管理页面中实现HTML5 colorpicker。这是我的模型:#model.py...class Category(models.Model):...color models.CharField(max_length7)这是表格:#form.pyfrom django.forms import ModelFormfrom django.forms.widgets import TextInpu…

微软曾经的二号人物永远地离开了

参加 2018 AI开发者大会,请点击 大会官网 他是一位发明家、投资者、考古学家和慈善家,“他对微软做出的不可或缺的贡献”会让人们永远铭记。 据外媒 CNBC 今日早间报道,微软联合创始人之一保罗艾伦(Paul Allen)于当地时…

经理人必须抛弃的十个习惯思维

1、过分的完美主义可能很多经理人总希望自己可以做到完美,于是拟订了诸多工作计划,但往往到最后,连自己也不知道应该如何选择。一名信奉完美主义的美术设计师总是很晚才交上作品,但他没有意识到,准时与作品质量具有同等…

菜鸟学习之linux用户行为日志审计方案

今天学习了了sudo日志审计,专门对使用sudo命令系统的用户记录其执行的相关命令信息说明:所谓sudo命令日志审计,不记录普通用户操作,而是记录执行sudo命令的用户操作1、安装sudo命令,syslog服务[rootqzj ~]# rpm -qa |egrep "sudo|syslog" rsys…

html+服务器控件语法,HtmlForm 服务器控件声明性语法

HtmlForm 服务器控件声明性语法08/20/2007本文内容创建一个服务器端控件,该控件映射到 HTML 元素并允许您为网页中的元素创建一个容器。DefaultButton"string"DefaultFocus"string"EnableViewState"False|True"Id"string"…

Javascript内置对象新增接口列表

网上很少有提供不同版本接口对比的文章,所以自己总结一下。 Array MethodDescriptionModifyVersionconcat连接多个数组,返回数组副本,参数可以为值或数组否ES3join把数组元素组合为字符串否ES3pop删除并返回最后一个元素是ES3push向数组末尾添…

程序员四大焦虑瞬间:拿什么拯救你,我日益后退的发际线?

参加 2018 AI开发者大会,请点击 大会官网 一场突如其来的降温,再度把程序员的格子衬衫送上热搜,和“发际线 专业水平”等常见标签一样,这往往被视作一种“程序员式的幽默”,但自我调侃之余也不乏令人头秃的真实焦虑。…

mono和monodevelop源码编译安装

之所以用源码编译的方式安装mono和monodevelop,是因为通过yum安装的mono不是最新版本,而且monodevelop不能建 asp.net MVC3的工程。 而且通过源码安装,可以进一步了解mono的各个项目之间的关系。 我用的Fedora16系统 1. mono的源码编译安装 …

sql数据库打包部署安装

目的:在客户端服务器上”附加数据库文件”。一).创建部署项目1. 打开VS.NET2005。2.在“文件”菜单上指向“新建项目”。3. 在“新建项目”对话框中,选择“项目类型”窗格中的”其他项目类型”中的“安装和部署”,然后选择“模板”…

2021潍坊市高考成绩查询,潍坊2021高考成绩排名榜单,潍坊各高中高考成绩喜报

2018高考成绩排名榜单,各高中高考成绩喜报尚未公布,请广大考生和家长参考往年公布情况!潍坊四中潍坊四中今年高考再次实现新的历史突破:本科过线1429人,自招(重本)上线379人。高分段情况:理660分以上3人,65…

掌握哪些机器学习工具更受企业青睐?

参加 2018 AI开发者大会,请点击 大会官网 想成为一名优秀的开发工程师不是一件简单的事情,除了掌握工程师的通用技能以外,还需要掌握机器学习的各种算法,更需要掌握从开发到调试到优化等一系列能力,这些能力中的每一项…

从头编写 asp.net core 2.0 web api 基础框架 (5) EF CRUD

第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分:http://www.cnblogs.com/cgzl/p/7652413.html 第4部分:http://www.cnblogs.com/cgzl/p/7661805.html Github源…

可以打游戏的计算机,还在用笔记本玩游戏?台式机才能给你极致享受

【PConline 游戏爆测】随着笔记本的性能越来越好,玩家对于游戏本的需求也越来越高了,再加上购买游戏笔记本并不需要额外购买显示器,就能享受到高刷新率高色域的屏幕,让玩家对于游戏台式机就更加不感兴趣了。但我想说的是&#xff…

如何把Windows安装的所有打印机列出来

[转]最近在论坛中不少网友问"如何把Windows安装的所有打印机列出来",在下面的程序中我们将把系统中所安装的打印机用列表框列出来,同时为默认打印机设置缺省值。  在下面的程序中我们用到了两个主要的类,把所有的打印机列表出来用…

今晚直播 | 谷歌资深工程师手把手教你使用TensorFlow最新API构建学习模型

目前,深度学习的研究和应用大受追捧,各种开源的深度学习框架层出不穷。TensorFlow 作为目前最受欢迎的深度学习框架,已经在 GitHub 上获得了 112194 个 star,受欢迎程序可见一斑。但如何学习 TensorFlow,以及如何通过 …

澳洲计算机学,2020年澳洲计算机科学专业工作好找吗

就业前景:本专业毕业生就业前景十分良好。在完成学业后可以凭借其良好扎实的专业技能自主创业,或者进一步学习获得硕士或博士学位,也可进入计算机科学领域求职,如对先进计算机进行研发、编程、游戏设计、多媒体设计、网页设计、信…

AngularJS如何在filter中相互调用filter

调用方式如下: app.filter(filter2, function( $filter ) {return function( input) {return $filter(filter1)( input );}});本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/p/6800107.html,如需转载请自行联…

腾讯AI Lab开源业内最大规模多标签图像数据集(附下载地址)

今日(10 月 18 日),腾讯AI Lab宣布正式开源“Tencent ML-Images”项目。该项目由多标签图像数据集 ML-Images,以及业内目前同类深度学习模型中精度最高的深度残差网络 ResNet-101 构成。 该开源项目的主要内容包括: 1、…

two years in cnblogs.com

时间过得太快了,几乎还没什么感觉就在博客园扎寨两年了。回头瞄瞄这两年来的随笔觉得自己留下的都是毛皮,自己一直在调船头,几乎没有在哪一个专业中找到精髓,有点遗憾!在博客园这两年最要感谢的人是dudu,他…