django+uwsgi+nginx+sqlite3部署+screen
note:可通过该命令查找文件未知
sudo find / -name filename
一:项目(github)
ssh root@server ip # 连接你的服务器
git clone -b https://mygithub.com # -b 指定分支
安装virtualenv及配置环境变量 详细见:https://www.cnblogs.com/tangpg/p/8458233.html
mkvirtualenv envname -p python3 # 创建项目使用的python版本的虚拟环境,创建成功默认回进入该虚拟环境
pip install -r requirements.txt # 安装项目依赖
python manage.py runserver # 保证项目能够运行
note:!!!
使用数据库为sqlite3可能会出现如下错误:
django.db.utils.NotSupportedError: URIs not supported
应该修改根据错误提示的路径下的base.py文件
if self.features.can_share_in_memory_db:
kwargs.update({'uri': True}) # 将此处的True改为False
return kwargs
二:配置uwsgi
pip install uwsgi # 安装
在项目根目录创建 uwsgi.ini 名字自取
[uwsgi]
# 取决于nginx配置 upstream
socket = 127.0.0.1:9000
socket = 127.0.0.1:9001
# 项目根目录
chdir = /home/jason/projectName# Django的wsgi文件
module = projectName.wsgi
# Python虚拟环境的路径
home = /home/user/.virtualenvs/envname/bin/python
# 进程相关的设置
# 主进程
master = true
# 最大数量的工作进程
processes = 1 # 感觉跟服务器cpu有关,反正我单核设置成2就会导致浏览特别慢
# 设置socket的权限
chmod-socket = 666
# 退出的时候是否清理环境
vacuum = true
# 静态文件 绝对地址
static-map = /static=/home/user/projectName/static
三:nginx 配置
安装nginx 详情:https://www.cnblogs.com/tangpg/p/8962773.html
配置环境变量,编辑/etc/profile 增加如下内容: NGINX_HOME= /usr/local/nginx export PATH=$PATH:$NGINX_HOME/bin source /etc/profile # 重启配置信息
mkdir conf.d # 在nginx.conf目录下创建文件
cd conf.d # 进入
touch project.conf # 创建nginx配置文件,配置此项目的配置信息
在nginx.conf中的http块的最后面, include usr/local/nginx/conf/conf.d/project.conf # 将该配置文件加载到nginx.conf配置中
nginx -s reload # 重启nginx服务 如果没有权限,切换为root用户重启
upstream anyname {
server 127.0.0.1:9000 weight=3; # 两台服务器 与 wsgi配置相关 weight=3, 9000端口处理3个请求,9001处理第四个请求。以此循环
server 127.0.0.1:9001;
} # 配置服务器
server {
# 监听的端口号,通过服务器ip监听的端口
listen 80;
# 域名 or ip
server_name your server ip;
charset utf-8; # 最大的文件上传尺寸
client_max_body_size 75M; # 静态文件访问的url, nginx再次加载静态文件
location /static {
# 静态文件地址
alias /home/user/projectName/static;
} # 最后,发送所有非静态文件请求到django服务器
location / {
include uwsgi_params;
# uwsgi_pass 127.0.0.1:9000; # uwsgi.ini 的socket参数相同 or
uwsgi_pass anyname; # upstream anyname
uwsgi_param UWSGI_SCRIPT projectName.wsgi; # wsgi.py文件
uwsgi_param UWSGI_CHDIR /home/user/projectName; # 指定项目目录
index index.html index.html;
client_max_body_size 35m;
}
}
四:启动uwsgi
uwsgi --ini uwsgi.ini
就可以通过 服务器域名或ip访问了
但是这样会有个问题,断开ssh连接,改进程也就被kill了。为此,我们可以使用screen
五: screen
yum install screen
出现该错误:
Error downloading packages: ...
执行 : yum clean all, 再重yum ... 我就ok了。
常用命令:
screen -S qugemingzi # 创建会话窗口,并取名
Ctrl+a+d # 暂时退出窗口
exit # 结束会话
screen -r qugemingzi # -r + name回到之前的窗口 查看会话列表: screen -ls
恢复之前离开的会话:screen -r 会话名或进程号
清除dead状态的会话:screen -wipe
启动一个开始就是Detached状态的会话:screen -dmS 名字 命令
1.创建一个会话窗口:screen -S name
2.在次窗口中运行第四不命令: uwsgi --ini uwsgi.ini
3. 将该会话挂起: Ctrl + a + d
这样断开ssh 连接,也不会中断进程了。。。
perfect...
django+uwsgi+nginx+sqlite3部署+screen的更多相关文章
- 阿里云 centos7 django + uWSGI+Nginx + python3 部署攻略
centos7+nginx+python3+django+uwsgi配置Django 项目部署 1.租的服务器(选择centos)的话,需要在阿里云后台控制台开放几个端口,克隆一下已开放的端口,t ...
- Django部署,Django+uWSGI+nginx+Centos部署
说明:系统是在windows上开发的,使用django1.11.4+python3.6.3开发,需要部署在centos6.4服务器上. 第一步:在Centos6.4上安装Python3.6.2 安装请 ...
- Django+uwsgi+Nginx安装部署
安装 安装Nginx Nginx是最流行的高性能HTTP服务器. 安装pcre: wget https://sourceforge.net/projects/pcre/files/pcre/8.37/ ...
- django+uwsgi+nginx的部署
1.下载与项目对应的django版本pip3 install django==1.11.16 -i https://pypi.douban.com/simple/2.用django内置的wsgi模块测 ...
- Django+Uwsgi+Nginx项目部署文档
一.基本环境搭建 1)查看服务器 [root@Myjumpserver ~]# cat /etc/sysconfig/selinux SELINUX=disabled SELINUXTYPE=targ ...
- docker简单使用+django+uwsgi+nginx项目部署
使用docker 搭建 centos7 环境: 主机环境:windows 10专业版 一.安装docker Hub.docker.com官网下载 docker for windows 安装完成后,任务 ...
- centos7 nginx配置httpsCenos(6.6/7.1)下从源码安装Python+Django+uwsgi+nginx环境部署(二)
1.yum安装nginx 下载对应当前系统版本的nginx包(package) # wget http://nginx.org/packages/centos/7/noarch/RPMS/ngin ...
- django+uwsgi+nginx部署(非常详细)
django+uwsgi+nginx部署 1.介绍: 在网上看了很多教程,但自己部署了很久都没有成功,这篇博文记录自己所踩过得坑. 2.环境: Ubuntu 16.04.1 LTS (GNU/Linu ...
- CentOS7.4部署Python3+Django+uWSGI+Nginx
CentOS7.4部署Python3+Django+uWSGI+Nginx http://www.showerlee.com/archives/2590
随机推荐
- Kafka三款监控工具比较
在之前的博客中,介绍了Kafka Web Console这个监控工具,在生产环境中使用,运行一段时间后,发现该工具会和Kafka生产者.消费者.ZooKeeper建立大量连接,从而导致网络阻塞.并且这 ...
- TL-WDR4310 v1 救砖
一.引出ttl线 用万用表测量,可以确定“GND”,第一个pin(焊盘为方的)为“Tx”,接下去依次为“Rx”.”GND”.”VCC“. 二.工具准备 下载tptpd软件工具,图标为 三.开始刷机 1 ...
- Delphi:窗体的扩展样式GWL_EXSTYLE用于SetWindowLong
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT or WS_EX_ ...
- Windows消息【一】 消息队列
看了MSDN后,以下是我个人的理解! 消息能够被分为「队列化消息」和「非队列化消息」. 队列化消息是指当程序发生某事件时,由Windows主动捕获并把消息放入系统消息队列中,而程序在运行时会初始化一个 ...
- driftnet 抓取图片总结
语法: driftnet [options] [filter code] 主要参数: -b 捕获到新的图片时发出嘟嘟声 -i interface 选择监听 ...
- Java中sleep方法和wait的详细区别
1.两者的区别 对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. 这两个方法来自不同的类分别是Thread和Object 最主要是 ...
- QQ在开发中的应用
1 截图 2 快捷回复 1svn更新 2美术资源替换 3后端服务器模块确认 4开会吧 5策划更新
- PAT 乙级 1029 旧键盘(20) C++版
1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的 ...
- 大数据:Parquet文件存储格式【转】
一.Parquet的组成 Parquet仅仅是一种存储格式,它是语言.平台无关的,并且不需要和任何一种数据处理框架绑定,目前能够和Parquet适配的组件包括下面这些,可以看出基本上通常使用的查询引擎 ...
- 如何进行CodeReview
一.代码规范的要点 代码规范主要分为风格规范与设计规范两大类: 1.代码风格规范 主要是文字上的规定,看似表面文章,实际上非常重要. 具体有如下几个方面: (1)缩进 (2)行宽 (3)断行/空白行 ...