【Django】Django web项目部署(Nginx+uwsgi)

一、安装uwsgi

 通过pip安装uwsgi。

pip install uwsgi

测试uwsgi,创建test.py文件:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

通过uwsgi运行该文件。

uwsgi --http :8001 --wsgi-file test.py

常用选项:

http : 协议类型和端口号

processes : 开启的进程数量

workers : 开启的进程数量,等同于processes(官网的说法是spawn the specified number ofworkers / processes)

chdir : 指定运行目录(chdir to specified directory before apps loading)

wsgi-file : 载入wsgi-file(load .wsgi file)

stats : 在指定的地址上,开启状态服务(enable the stats server on the specified address)

threads : 运行线程。由于GIL的存在,我觉得这个真心没啥用。(run each worker in prethreaded mode with the specified number of threads)

master : 允许主进程存在(enable master process)

daemonize : 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器(daemonize uWSGI)。实际上最常用的,还是把运行记录输出到一个本地文件上。

pidfile : 指定pid文件的位置,记录主进程的pid号。

vacuum : 当服务器退出的时候自动清理环境,删除unix socket文件和pid文件(try to remove all of the generated file/sockets)

二、安装nginx

sudo apt-get install nginx  #安装

  启动Nginx:

/etc/init.d/nginx start  #启动
/etc/init.d/nginx stop  #关闭
/etc/init.d/nginx restart  #重启

三、Django部署

在我们用python manager.py startproject myproject创建项目时,会自动为我们生成wsgi文件,所以,我们现在之需要在项目目录下创建uwsgi的配置文件即可,我们采用ini格式:

# myweb_uwsgi.ini file
[uwsgi]
# Django-related settings
socket = :8000
# the base directory (full path)
chdir           = /mnt/myproject
# Django s wsgi file
module          = myproject.wsgi
# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 4
# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true
daemonize       = /mnt/myproject/uwsgi_log.log
pidfile = /mnt/myproject/uwsgi_pid.log

再接下来要做的就是修改nginx.conf配置文件。打开/etc/nginx/nginx.conf文件,http中添加如下内容。

server {
    listen         8099;
    server_name    127.0.0.1
    charset UTF-8;
    access_log      /var/log/nginx/myweb_access.log;
    error_log       /var/log/nginx/myweb_error.log;
    client_max_body_size 75M;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8000;
        uwsgi_read_timeout 2;
    }  
    location /static {
        expires 30d;
        autoindex on;
        add_header Cache-Control private;
        alias /mnt/myproject/static/;
     }
 }
listen 指定的是nginx 对外的端口号。

server_name  设置为域名或指定的到本机ip。

nginx通过下面两行配置uwsgi产生关联:

include uwsgi_params;  
uwsgi_pass 127.0.0.1:8000; //必须与uwsgi中配置的端口一致

最后我们在项目目录下执行下面的命令来启动关闭我们的项目:

1 #启动
2 uwsgi --ini uwsgi.ini 
3 /etc/init.d/nginx start  
4 
5 #停止
6 uwsgi --stop uwsgi_pid.log
7 /etc/init.d/nginx stop

好了 ,现在我们可以访问127.0.0.1:8099即可看到我们自己的项目了

转载于:https://www.cnblogs.com/perfe/p/6196854.html

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

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

相关文章

电脑知识:新电脑数据迁移解决方案,看完你就会了

目录 一、将旧电脑硬盘拆下安装到新电脑上 二、数据上传网盘 三、使用U盘或移动硬盘来传送 四、通过网络共享文件传送 五、使用PE工具盘引导电脑进入PE系统 今天小编给大家分享几种比较实用的电脑数据迁移的方案,希望对大家能有所帮助! 一、将旧电脑硬盘…

分布式系统的一些基本概念

1、分布式 小明的公司又3个系统:系统A,系统B和系统C,这三个系统所做的业务不同,被部署在3个独立的机器上运行,他们之间互相调用(当然是跨域网络的),通力合作完成公司的业务流程。 将…

background-sizi (转)

http://www.cnblogs.com/greenteaone/archive/2012/08/28/2659878.html &#xff08;原创作者链接地址 &#xff09; Background-Size:[ <length> | <percentage> | auto ]{1,2} | cover | containbackground-size指定背景大小&#xff0c;以象素或百分比显示。当…

良性计算机病毒对计算有没有危害机系统,154、计算机病毒有良性和恶性之分,其中, – 手机爱问...

2016-10-09胃溃疡有良性和恶性之分吗胃溃疡最大的危害来自并发症1、出血&#xff1a;出血是溃疡发生到一定的程度的侵蚀到溃疡周围的血管使血管破裂所致其出血量的多少及对病人生命的危害程度撒于受到损伤的血管的大小当溃疡损伤的为毛细血管时一般对病人危害较小也不容易被发现…

办公技巧:分享12个实用的word小技巧,欢迎收藏

目录 1、 Word表格自动填充序号 2、 Word中快速输星期 3、 快速粘贴网页内容 4、 快速转换大写金额 5、 去掉自动编号功能 6、画出不打折的直线 7、加减乘除快速输入 8、部分加粗表格线 9、打造整齐的Word公式 10、文字旋转 11、去除默认的输入法 12、翻译文字 今天给大家分享1…

计算机组成SRAM,静态读写存储器(SRAM)-计算机组成原理与汇编语言-电子发烧友网站...

4.2.1 静态读写存贮器( SRAM )1.概述静态读写存贮器(SRAM)使用十分方便&#xff0c;在微型计算机领域获得了极其广泛的应用。现以一块典型的SRAM芯片为例说明其外部特性及工作过程。(1) 8K8bit的CMOSRAM芯片 ① 引线功能。6264(6164)有28条引出线&#xff0c;它们包括&#xff…

电脑技巧:如何开机进入纯净的Windows系统

电脑在使用&#xff0c;软件在增多&#xff0c;时间一久必然会让系统越来越卡顿。 那么这时候&#xff0c;我们第一时间做的就是清理垃圾缓存了&#xff0c;大家都想系统干净些&#xff0c;但效果是怎么样的呢&#xff1f;基本上都不尽如意。 对此&#xff0c;为了真正解决这些…

(2021年)IT技术分享社区个人文章汇总(编程技术篇)

2021年即将成为过去&#xff0c;崭新的2022年即将到来&#xff0c;小编坚持每天给大家分享IT技术相关的文章&#xff0c;希望小编分享的文章能够给大家在日常的工作当中&#xff0c;带来一点帮助。也感谢大家对本公众号的支持&#xff0c;未来我会坚持创作&#xff0c;给大家分…

Android Studio快捷键

Android Studio常用快捷键 CtrlG / CtrlAltShiftG&#xff1a;查询变量或者函数或者类在哪里被使用或被调用&#xff0c;后者是前者的复杂表现&#xff0c;可以选择查询范围等。AltH&#xff1a;查找功能&#xff0c;全局查找F4&#xff1a;查看类继承关系F2&#xff1a;查看文…

相对不容易用计算机语言编程实现的是,在描述算法的方法中,相对不容易用计算机语言编程实现的是(    )....

【单选题】点作曲线运动,若其法向加速度越来越大,则该点的速度 __________________ 。【判断题】昆虫一个品系对一种杀虫剂产生抗性后,反而对另一种未用过的药剂更敏感的现象,叫交互抗性。【判断题】理财顾问服务是指商业银行向客户提供的财务分析与规划、投资建议、个人投资产…

网络知识:核心交换机概念知识介绍

一、背板带宽 背板带宽也称交换容量&#xff0c;是交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量&#xff0c;就像是立交桥所拥有的车道的总和。由于所有端口间的通信都需要通过背板完成&#xff0c;所以背板所能提供的带宽&#xff0c;就成为端口间并发通信时的瓶…

getchar的利用

/*以每行一个单词的形式打印其输入 */ getchar putchar函数&#xff0c;是逐个打印和输入&#xff08;逐个循环打印&#xff09; #include <stdio.h>int main() { int c; while( (c getchar()) ! EOF)if(c || c \n || c \t) printf("\n"); else putcha…

杭州高职单招计算机试题,河北省高职单招职业技能练习题20

河北省高职单招职业技能练习题20一、单项选择题1&#xff0e;《在那遥远的地方>是( )的民歌。A&#xff0e;四川 B&#xff0e;江苏 C&#xff0e;蒙古 D&#xff0e;青海2.以下不属于广东音乐的是( )。A&#xff0e;彩云追月 B&#xff0e;平湖秋月 C&…

jvm指令重排原因?怎么避免?

原因&#xff1a;计算机内存操作速度远慢于CPU运行速度&#xff0c;所以就造成CPU空置&#xff0c;为了将提高CPU利用率&#xff0c;虚拟机会按照自己的一些规则会跳过执行慢的代码&#xff0c;去执行快的代码&#xff08;即对代码重新排序&#xff09;&#xff0c;从而提升jvm…

appframework3.0(JQmobi)入门教程

2015-03-31 22:02 2011人阅读 评论(0) 收藏 举报 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 appframework3.0好像是3月24日发布的&#xff0c;今天31号&#xff0c;发现和之前的appframework2.1 || 2.2并不同。 jqmobi3.0中不在支持 data-…

数据库:推荐几款 Redis 可视化工具,你都用过吗?

目录 1. 命令行 3. Redis Desktop Manager 4.medis 5.AnotherRedisDesktopManager 6.FastoRedis 7.RedisPlus 8.Red 9.Redis Insight 10.Iedis2 11.总结 1. 命令行 不知道大家在日常操作redis时用什么可视化工具呢&#xff1f; 以前总觉得没有什么太好的可视化工具&#xff0c;…

计算机会计学ufo报表,ufo报表实验报告(共10篇).doc

ufo报表实验报告(共10篇)ufo报表实验报告(共10篇) UFO报表实验报告齐鲁工业大学实验报告 成绩课程名称会计电算化指导教师 实验日期 2014/5/21院(系) 商学院 专业班级会计3班实验地点 商学院机房学生姓名 学号 同组人无实验项目名称UFO报表管理一、 实验目的和要求1. 理解报表编…