一、安装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

【Django】Django web项目部署(Nginx+uwsgi)相关推荐

  1. Django的web项目部署至Centos7服务器并配置域名访问

    配置服务器 本教程使用的本地环境为 Windows 10,服务器环境为 CentOS 7(64 位).(如果你还不知道服务器是什么的话,我简单解释一下服务器其实就是一台在其他地方运行的主机.这台主机可 ...

  2. Centos 6.5部署nginx+uwsgi+django

    Centos 6.5部署nginx+uwsgi+django 一.安装python3,系统默认是python2.6 1.安装依赖软件 yum -y install sqlite-devel yum - ...

  3. 将Web项目部署到华为云服务器的Linux的Tomcat中

    将Web项目部署到阿里云服务器的Linux的Tomcat中 01_用SSH Secure Shell Client或Xshell 6这个Windows客户端工具,将在Windows中已经开发完毕的Ja ...

  4. 如何将web项目部署到远程桌面,通过远程地址访问web项目

    如何将web项目部署到远程桌面,通过远程地址访问web项目 进入公司会经常让你把某个项目或者一些展示数据的html文件放到远程服务器上,可供大家一起访问查看,看了网上的一些办法大部分都是nginx,t ...

  5. Web项目部署到云服务器中—保姆级教程

    文章目录 1.1工具准备 1.2安装JDK 1.3安装Tomcat 1.4安装MySql 1.5配置防火墙 1.6配置云服务器安全组 1.7Tomcat配置与启动 1.8补充知识 8.8.1如何将项目 ...

  6. 把本地web项目部署在腾讯云服务器上

    把本地web项目部署在腾讯云服务器上 怎样把本地web项目部署在腾讯云服务器上? 1.准备本地项目 2.配置云计算机 3.配置云服务器 4.部署项目 5.运行项目 怎样把本地web项目部署在腾讯云服务 ...

  7. java web项目部署到tomcat服务器(一般步骤和自己所犯错误的总结)————高手忽略

    最近由于项目需求,需要将java web项目部署到本地tomcat上(版本为8.0)进行测试.作为一个非计算机专业的菜鸟,之前的工作都是写后台逻辑代码,没接触过web项目部署.部署的时候不知道如何下手 ...

  8. 网站部署到其他服务器但无权修改,web项目部署到服务器遇到的问题

    web项目部署到Linux服务器遇到的问题 (内含war包部署产生的问题) 部署项目为:旅游网(可下载源码) 一 Linux部署环境问题 二 war包错误修改 Linux部署环境问题 整个Linux服 ...

  9. 阿里云部署Django项目(nginx+uWSGI)-2018.11

    前言:部署的前提是你的项目已经在本地完成可以运行了,我的本地环境是ubuntu16.04+python3.5+Django2.1.2+Mysql,在python虚拟环境(virtualenv)下建的项 ...

  10. Django之部署NGINX+uWSGI

    参考地址:http://www.cnblogs.com/CongZhang/p/6548529.html http://www.cnblogs.com/alex3714/p/6538374.html ...

最新文章

  1. 【已解决】mysql连接出错:ERROR 1040 (HY000): Too many connections
  2. curl get post 示例
  3. python新手入门教程-终于知晓python新手练习教程
  4. Spring快速入门及深入
  5. JavaScript indexOf() 方法 和 lastIndexOf() 方法
  6. 电脑重启bootmgr_电脑系统启动:显示0xc0000428怎么办
  7. RabbitMQ从初学到精通一
  8. ElasticSearch docker安装
  9. Arduino入门笔记(5):1602液晶实验(实现时钟)
  10. 绿色版DNF(地下城勇士)全键盘连发工具,支持DNF双开
  11. C++ OpenCV人脸图像提取
  12. vs2010下配置HPSocket教程,详细截图附入门demo源码
  13. 水逆期自我救赎:MacBook pro进水
  14. 通过Frp内网穿透和Nginx反向代理实现不带端口号访问家里内网服务器网站
  15. 表达矩阵melt之后 画图 reshape gaochao ards 1: Unknown or uninitialised column: `p`. 2: Computation failed i
  16. 用优盘装系统看不到计算机本身的硬盘,给电脑装系统!的时候找不到硬盘只能看到u盘数据我怀疑硬盘坏了主机? 爱问知识人...
  17. 理解进程、通过调用 fork 函数创建进程
  18. 爸妈语录(笑的嘴抽筋了~~~~~) 转
  19. 9.13 用C语言实现LED1/LED2/LED3灯点亮
  20. 傅里叶级数的理解与简单推导

热门文章

  1. c# 文件压缩、解压及下载
  2. spring-core
  3. JS性能分析(测试代码运行时间)
  4. 部署项目的问题(二)—— 阿里云服务器 ECS升级node版本
  5. Mybatis中输入输出映射和动态Sql
  6. Zabbix 钉钉报警
  7. Centos安装Vmware-Tools工具
  8. eclipse环境配置、快捷键及基本操作
  9. 阿里查出售假店主并索赔140万,这次是大数据帮的忙
  10. HDU 1754线段树