1. virtualvenv

virtualvenv install

首先要安装python3

因为系统已经装了 python3.6 所以接下来直接装虚拟环境 virtualvenv

mkdir yourwebproject folder
cd yourwebproject
/usr/python3.6/bin/python3.6 -m venv venv #建立一个独立于系统的虚拟环境 不会跟系统环境混淆
source venv/bin/activate #运行环境
deactivate #退出环境

2. django

  • 运行虚拟环境,在环境中安装django
pip install django
  • 新建项目
   1). django-admin startproject proName
2). cd proName
3). python manage.py runserver # run
  • 新建app

    不用也可以进行接下来的操作

3. uWSGI

官网

注意区别:WSGI/uwsgi/uWSGI

  • WSGI 是一种通信协议。
  • uwsgi 是一种线路协议,在此常用于在 uWSGI 服务器与其他网络服务器的数据通信。
  • uWSGI 是实现了 uwsgi 和 WSGI 两种协议的Web服务器。

安装

在虚拟环境中

pip install uwsgi

检测 uwsgi 是否正常工作

  • 在与venv同目录下写一个模拟站点文件 test.py
# test.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"] # python3
  • 运行
uwsgi --http :8080 --wsgi-file test.py  # 假设访问端口号8080
  • 浏览器访问
http://serverIP:8080

若显示站点文件中的输出,说明uwsgi生效

路径 web client <-> uwsgi <-> python

部署 django

  • 首先运行django确保django能正常工作
python manage.py runserver 0.0.0.0:8000
  • 在manage.py同级目录下运行
uwsgi --http :8080 --module djangoProName.wsgi

--module djangoProName.wsgi 代表 djangoProName 目录下的 wsgi.py 文件

  • 浏览器访问
http://serverIP:8080

4. nginx

官网

不在虚拟环境中安装

由于服务器上已经安装了 nginx 所以安装步骤省略,只需要在 nginx.conf 中添加配置即可。

  • 配置 nginx

nginx.conf 结构:

user www-data;
worker_processes auto;
pid /run/nginx.pid; events {
worker_connections 768;
} http {
# server{ ... }
}

添加 server

   server {
listen 98 default_server; # 访问时输入的端口 本地和外部浏览器后面都要加这个端口号
server_name 10.41.95.85; # 自己网站的域名 # Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf; location / { # location : 文件系统配置 去应答一些要服务器资源的请求
include uwsgi_params;
uwsgi_pass 127.0.0.1:9898; # 与ini文件对接端口 与上面的 93 端口没有关系
}
}

配置完了之后记得重启nginx

  • 配置 uwsgi

将配置项全部写入ini文件

在venv同目录下自己新建uwsgi的ini文件

[uwsgi]
socket = 127.0.0.1:9898 ; 与 nginx 对接 IP
; django pro dir
chdir = /root/Odin/TrackManagement/TrackManagement/ ; django project dir
wsgi-file = TrackManagement/wsgi.py ; 代表 TrackManagement 目录下的 wsgi.py 文件
; module = TrackManagement.wsgi ; 有上面的wsgi配置这个就不用写了 processes = 2 ; 进程
threads = 1 ; 线程
stats = 127.0.0.1:9696 ; 通过该端口可以监控 uwsgi 的负载情况 内部配置访问ip 与socket区别开
  • 浏览器访问
http://10.41.95.85:98

若显示django画面 则 uwsgi+nginx生效

路径 web client <-> nginx <-> uwsgi <-> django


过程中踩的坑在另一篇博文中 -> virtualvenv+django+uWSGI+nginx 部署 踩坑记录

virtualvenv+django+uWSGI+nginx 部署的更多相关文章

  1. virtualvenv+django+uWSGI+nginx 部署 踩坑记录

    原创博文 转载请注明出处! uwsgi: unrecognized option '--http:8089' uwsgi: unrecognized option '--http' uwsgi trk ...

  2. django+uwsgi+nginx部署(非常详细)

    django+uwsgi+nginx部署 1.介绍: 在网上看了很多教程,但自己部署了很久都没有成功,这篇博文记录自己所踩过得坑. 2.环境: Ubuntu 16.04.1 LTS (GNU/Linu ...

  3. Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)

    Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...

  4. Django+uWSGI+Nginx 部署网站

    Django 1.11设置 保证Django在本地调试没有问题: 当然这是前提^_^ 收集静态文件至指定文件夹 Django静态文件设置具体参考:https://docs.djangoproject. ...

  5. Ubuntu下Django+uWSGI+nginx部署

    本文采用uwsgi+nginx来部署django 这种方式是将nginx作为服务端前端,将接受web所有的请求,统一管理,Nginx把所有的静态请求自己处理,然后把所有非静态请求通过uwsgi传递给D ...

  6. Django+Uwsgi+Nginx部署

    一 uwsgi介绍 uWSGI是一个Web服务器,它实现了WSGI协议,uwsgi, http等协议. Nginx中HttpUwsgiMoule的作用是与uWSGI服务器进行交换 1 WSGI是一种W ...

  7. django+uwsgi+nginx 部署生产环境

    一.Uwsgi安装 python3 -m pip install uwsgi cp /usr/local/python3/bin/uwsgi /usr/bin/ 测试 在django项目主目录下cre ...

  8. Ubuntu+Django+uWSGI+Nginx部署Django项目

    安装uWSGI,pip依据自己要使用的python版本自行选择,python2.x版本使用pip进行安装,python3.x版本使用pip3进行安装 pip install uwsgi 配置uWSGI ...

  9. Django Uwsgi Nginx 部署

    1.django的settings配置 参照博客 https://www.cnblogs.com/xiaonq/p/8932266.html # 1.修改配置 # 正式上线关闭调试模式, 不会暴露服务 ...

随机推荐

  1. POJ 2411 Mondriaan's Dream 【状压Dp】 By cellur925

    题目传送门 这道题暑假做的时候太模糊了,以前的那篇题解大家就别看了==.今天再复习状压感觉自己当时在写些什么鸭.... 题目大意:给你一个\(n\)*\(m\)的棋盘和许多\(1*2\)的骨牌,骨牌可 ...

  2. JavaWeb案例: 文件下载 基于tomcat8 默认编码为UTF-8

    package cn.itcast.download; import javax.servlet.ServletException; import javax.servlet.ServletOutpu ...

  3. IOS字符串截取保留小数点后两位

    -(NSString*)getTheCorrectNum:(NSString*)tempString { //计算截取的长度 NSUInteger endLength = tempString.len ...

  4. 040 Combination Sum II 组合总和 II

    给定候选号码数组 (C) 和目标总和数 (T),找出 C 中候选号码总和为 T 的所有唯一组合.C 中的每个数字只能在组合中使用一次.注意:    所有数字(包括目标)都是正整数.    解决方案集不 ...

  5. Codeforces Round #376 (Div. 2) F. Video Cards 数学 & 暴力

    http://codeforces.com/contest/731/problem/F 注意到一个事实,如果你要找一段区间中(从小到大的),有多少个数是能整除左端点L的,就是[L, R]这样.那么,很 ...

  6. text-transform 字母的大小写

    text-transform: none   默认 capitalize    每个单词以大写字母开头 uppercase    仅有大写字母 lowercase     无大写字母,仅有小写字母 i ...

  7. spring boot + spring data jpa

    Spring Data Repository的核心接口是Repository(好像也没什么好惊讶的).这个接口需要领域类(Domain Class)跟领域类的ID类型作为参数.这个接口主要是让你能知道 ...

  8. JavaScript笔记3--标识符和保留字

    1.标识符 javaScript标识符必须以字母,下划线(_)或美元符($)开始.后续的字符可以是字母/数字/下划线/美元符.也可以使用非英语语言或数学符号来书写标识符; 2.保留字 break/de ...

  9. Typedef 用法

    typedef声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法. 不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用typedef避免缺欠,从而使代码更健壮.  ...

  10. jmeter的安装和基本使用

    本篇文章主要介绍一下JMeter的安装及基本使用方法. 1.安装 JMeter的官方网址为http://jmeter.apache.org/ 下载地址为http://jmeter.apache.org ...