ubuntu 16.04 部署 pypy+nginx+uwsgi+django(详细)

1、nginx                                                                                                                                            

 安装nginx之前先安装python的pip,千万不能用pypy的pip,会容易破坏依赖关系,很难修复,

sudo apt-get install nginx

因为,是自动安装,所以nginx的配置文件在/etc/nginx/sites-enabled/文件目录下的default。直接通过命令vi打开,a,进入插入模式,进行编辑。因为ubuntu是没有vim的,所以上下左右方向键其实显示的是字母,H、j、k、l,才是上下左右,所以先下载vim,在进行编辑。

sudo apt-get install vim --下载vim

vi  /etc/nginx/sites-enabled/default --打开配置文件

对配置文件进行的更改

# the upstream component nginx needs to connect to//关于djjango的配置
upstream django {
server unix:///tmp/webvision.sock; # for a file socket
#server 127.0.0.1:8001; # for a web port socket (we‘ll use this first)
}

server {//链接到index首页
listen 80 default_server;
index index.html index.htm index.php default.html default.htm default.php;
# the domain name it will serve for server_name .shitac.net default 192.168.21.31; # substitute your machine‘s IP address or FQDN
charset utf-8;
root /var/www/html;
# max upload size
client_max_body_size 75M; # adjust to taste//通用配置//直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理
location / {
uwsgi_pass django;
include /etc/nginx/uwsgi_params;
}

location /media/ {
alias /var/www/webvision2/media/;
}

location /static/ {
alias /var/www/webvision2/static/;
}
location = /crossdomain.xml {
root /var/www/html;
}
location /live {
root /var/www/html;
expires -1;
}
location /pic {
root /var/www/html;
expires 30d;
}
}

2、pypy

注意:官方源的运行uwsgi会出现错误,google是说官方源的是static的 libpypy-c.so: cannot open shared object file

所以我选择安装ppa的pypy

安装命令

sudo add-apt-repository ppa:pypy/ppasudo apt updatesudo apt install pypy

您可能需要一个pip的国内源,以增加pip操作的速度,可以百度找有很多,我用的是豆瓣

vim ~/.pip/pip.conf
 // 將下列复制在pip.conf中
    [global]
    index-url = http://pypi.douban.com/simple
    [install]
    trusted-host=pypi.douban.com

3、uwsgi

我们先进入pypy环境,在pypy环境下安装uwsgi

安装uwsgi

p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 10); line-height: 120%; text-align: justify }
p.western { font-family: "Calibri", serif; font-size: 12pt }
p.cjk { font-family: "宋体"; font-size: 12pt }
p.ctl { font-family: "Times New Roman"; font-size: 11pt }
a:link { color: rgb(0, 0, 255) }
p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 10); line-height: 120%; text-align: justify }
p.western { font-family: "Calibri", serif; font-size: 12pt }
p.cjk { font-family: "宋体"; font-size: 12pt }
p.ctl { font-family: "Times New Roman"; font-size: 11pt }
a:link { color: rgb(0, 0, 255) }

virtualenv -p /usr/bin/pypy pypy  --建立pypy的虚拟环境source ~/pypy/bin/activate        -- 进入环境pip install uwsgi           --安装

等到下载完以后就可以更改uwsgi的配置文件了,

[uwsgi]
socket = /tmp/webvision.sock --指定socket #这是实现应用nginx与uwsgi之间的通信(很复杂的东西)
master = true -- 主进程启动true
processes = 4 -- 启动四个进程工作
enable-threads = true --允许用内嵌的语言启动线程。
pidfile = /tmp/webvision2_uwsgi.pid  --指定pid进程文件
daemonize = /var/log/webvision2/uwsgi.log  --uwsgi.log肯定是日志咯
chdir = /var/www/webvision2  --项目目录,如果站点多推荐flase
pythonpath = /var/www/webvision2  --指明当前应用程序的项目路径
virtualenv = /home/kanbig/pypy
pypy-home = /home/kanbig/pypy
pypy-wsgi-file = /var/www/webvision2/lteadmin/wsgi.py --wsgi是uwsgi与djiango之间的通信,这是绝对路径

p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 10); line-height: 120%; text-align: justify }
p.western { font-family: "Calibri", serif; font-size: 12pt }
p.cjk { font-family: "宋体"; font-size: 12pt }
p.ctl { font-family: "Times New Roman"; font-size: 11pt }
a:link { color: rgb(0, 0, 255) }

4、djiango

安装djiaogo需要进入djiango的目录,已经在webvision2中配置了wsgi.py,所以cd进去

先安装requirememts依赖库

pip install -r requirements.txt

这最后一步问题多多,pyflake8可能需要降档,系统提示pyflake8》=1.6等等有许多问题,按着报错提示一个个安装下载就行,这里我只提供一个降档步骤

p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 10); line-height: 120%; text-align: justify }
p.western { font-family: "Calibri", serif; font-size: 12pt }
p.cjk { font-family: "宋体"; font-size: 12pt }
p.ctl { font-family: "Times New Roman"; font-size: 11pt }
a:link { color: rgb(0, 0, 255) }

pip uninstall pyflakes
pip install pyflakes==1.6

最后启动命令

uwsgi --ini uwsgi.ini
    ps -elf|grep uwsgi --如果有四个进程启动就对啦
sudo service nginx restart
    ps -elf|grep nginx -- nginx打开输入localhost不报错就行

p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 10); line-height: 120%; text-align: justify }
p.western { font-family: "Calibri", serif; font-size: 12pt }
p.cjk { font-family: "宋体"; font-size: 12pt }
p.ctl { font-family: "Times New Roman"; font-size: 11pt }
a:link { color: rgb(0, 0, 255) }

原文地址:https://www.cnblogs.com/py1612919884/p/9275889.html

时间: 2024-11-10 11:30:33

ubuntu 16.04 部署 pypy+nginx+uwsgi+django(详细)的相关文章

Ubuntu 16.04下配置nginx与nodejs以及服务的部署

title: Ubuntu 16.04下配置nginx与nodejs以及服务的部署 date: 2019-05-05 22:45:49 tags: Linux --- 第一步:安装nginx sudo apt-get update sudo apt-get install nginx 如果遇到依赖问题,尝试执行sudo apt-get -f install命令 第二步:配置nginx 首先备份原先的配置文件:sudo cp /etc/nginx/sites-available/default /

Ubuntu 16.04安装QQ国际版图文详细教程

      因工作需要,我安装了Ubuntu 16.04,但是工作上的很多事情需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个Linux版本的QQ,然而不是功能不全,就是界面丑到爆,要么就是不稳定:最后,找到了个人认为最好用的QQ-WineQQ国际版. 说明:一开始,我在Ubuntu 16.04下安装的QQ版本是Wineqq2013SP6-20140102-Longene,但后来发现这个版本QQ在linux下问题很多,比如不能 用键盘输入密码,QQ表情使用失灵,有

Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel

1.MySQL安装[安装 MariaDB]MariaDB是MySQL的一个分支首先,更新升级系统$ sudo apt update$ sudo apt upgrade安装MariaDB:$ sudo apt install mariadb-server启动MariaDB服务:$ sudo systemctl start mysql$ sudo systemctl enable mysql查看状态:$ sudo systemctl status mysql 为例提高MariaDB的安全,我们可以执

Ubuntu 16.04 上安装 CUDA 9.0 详细教程

https://blog.csdn.net/QLULIBIN/article/details/78714596 前言: 本篇文章是基于安装CUDA 9.0的经验写,CUDA9.0目前支持Ubuntu16.04和Ubuntu17.04两个版本,如下图所示(最下面的安装方式我们选择第一个,即runfile方式): 大家可以先将CUDA文件下载下来,但是最好不要急于安装,一定要先将NVIDIA给出官方指导手册仔细看一下,然后再找几篇好的博客看一下,大致了解一下CUDA的安装过程,对安装过程中可能出现的

ubuntu 16.04部署python项目(Nginx+uwsgi+django)

尝试在linux上部署项目,先从最熟悉的python项目开始吧. 1.安装Nginx 命令:sudo apt-get install nginx 2.安装uwsgi,从pip仓库安装 命令:pip3 install uwsgi 3.把django项目移到服务器 通过这次操作才知道往linux上拖文件不能拖文件.因此需要打包一下才能移动文件.我这个云服务器默认支持的xxx.tar.gz格式的文件,但是在windows上压缩的时候只能压缩成zip的,所以这里有两个办法 1)在windows上安装一个

Django项目部署(nginx+uWSGI+django+virtualenv+supervisor发布web服务器 )

一.简介 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求) 基于wsgi运行的框架有bottle,DJango,Flask,用于解析动态HTTP请求 支持WSGI的服务器 wsgiref python自带的web服务器 Gunicorn 用于linux的 python wsgi Http服务器,常用于各种django,flask结合部署服务器. mode_wsgi 实现了Ap

Django 生产环境部署-记录 nginx+uwsgi+Django

这几天一直研究django生产环境的部署,看了很多文章,都写的很好,有些时候只是环境不太一样,配置过程中出现了很多的问题,例如: uwsgi  ---module   一直运行不起来,,加--file参数才可以... ----亲测可以运行----- 1.安装DJANGO,创建工程项目,确保python manage.py runserver 0.0.0.0:8080 能够正常启动 2.安装uwsgi , 在你的机器上写一个test.py # test.pydef application(env,

Ubuntu 16.04 -- 同时配置Nginx(转发)和frp(内网映射)和HTTPS(ca加密) - 端口转发

Ubuntu16.04下: sudo apt -get nginx 用这条命令安装完nginx之后, nginx在该目录下: 然后配置nginx: 如下: 红圈圈住的地方多写几个可以做负载均衡. 端口转发 什么是端口转发 当我们在服务器上搭建一个图书以及一个电影的应用,其中图书应用启动了 8001 端口,电影应用启动了 8002 端口.此时如果我们可以通过 localhost:8001 //图书 localhost:8002 //电影 但我们一般访问应用的时候都是希望不加端口就访问域名,也即两个

Ubuntu Nginx uwsgi django 初试

/************************************************************************************** * Ubuntu Nginx uwsgi django 初试 * 说明: * 最近打算通过Python搭建一个数据收集的网站,先做一个搭建测试. * * 2016-8-5 深圳 南山平山村 曾剑锋 ***************************************************************