文档章节

nginx uwsgi django supervisord Centos部署

一一无念
 一一无念
发布于 2017/01/02 14:21
字数 821
阅读 135
收藏 1

1,创建工程目录

mkdir /hk 作为主工作目录
cd /hk

2,nginx 安装

wget  nginx.org/packages/mainline/centos/7/x86_64/RPMS/nginx-1.9.9-1.el7.ngx.x86_64.rpm
rpm -ivh nginx-1.9.9-1.el7.ngx.x86_64.rpm
yum install nginx
systemctl start nginx.service
//在Centos7 下原service 变成systemctl
systemctl enable nginx.service 
//设置nginx 开机启动
// nginx 参数配置
cd /etc/nginx/conf.d
vim myproject.conf
//内容如下
server {
	listen 80;
    server_name 192.168.1.198; //本机IP或者域名
  	charset utf-8;
	
	client_max_body_size 75M;
	
	location /media {
		alias /hk/myproject/media;
	}
     
        location /static {
		alias /hk/myproject/static;
	}

	location / {
		uwsgi_pass 127.0.0.1:8001; //关键参数,这个参数就是nginx与uwsgi连接的套接字
		include /etc/nginx/uwsgi_params;
	}
}

3, 创建django project

django-admin.py startproject myproject
cd myproject
python manage.py startapp mysites
vim myproject/settings.py 
//加入app mysites 保存
python manage.py migrate
# 防火墙开放端口 8001 用于测试,用后需要关闭
firewall-cmd --add-port=8001/tcp --permanent
firewall-cmd reload
python runserver 0.0.0.0:8001
//在其它电脑输入IP:8001就是django默认的首页了

// 这是一个最基本的工程,就只是django的默认的首页
// 一般情况下需要在/hk/myproject 下还要增加如 static 静太文件, templates 这些文件夹
// 在这种情况下,django的后台默认的css是不能加载,需要collection static

4,uwsgi 安装

pip install uwsgi
# 防火墙开放端口 8001 用于测试,用后需要关闭
firewall-cmd --add-port=8001/tcp --permanent
firewall-cmd reload
cd /hk/myproject
# 创建测试uwsgi服务器
vim test_uwsgi.py
//内容如下
def application(env, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return 'Hello World'
//保存 执行如下命令
uwsgi --http :8001 --wsgi-file test_uwsgi.py
//这个时修改在其它电脑输入IP地址:8001就会出现
//Hello World
//表示uwsgi服务良好
//但这并不是我们想要的目的
//我们需要在uwsgi 是配制文件式
//所以创建 /hk/uwsgi_myproject.ini
//并在文件里加入
[uwsgi]
socket = 127.0.0.1:8001
chdir = /hk/myprject/
wsgi-file = myprject/wsgi.py
master = true
processes = 2
threads = 2
limit-as = 512
deamonize = /var/log/uwsgi/uwsgi8001.log
//保存
uwsgi --ini /hk/hkwebsite/uwsgi_myproject.ini & 
// 这个是已经后台进程运行了

5 运行

//我们先运uwsgi 
uwsgi --ini /hk/hkwebsite/uwsgi_myproject.ini & 
// 由于防火墙的存这个nginx与uwsgi是不能建连接的,也就是转发如要开启这项功能,代码如下
setsebool -P httpd_can_network_connect 1
//然后 重新加载
systemctl reload nginx.service
// 在其它电脑输入IP地址就,nginx默认端口80就转发uwsgi 8001上了
// 关闭外网直接访问8001端口, 开启防火墙
firewall-cmd --zone=public --remove-port=8001/tcp --permanent
firewall-cmd --reload

6 加入supervisor

//保证开机自启动, 一般情况下还会有mysql redis 这样的服务需要启动,在centos下默认为启动就可以了
//对于程序,还需要更多的一些内容
//如django 里加入celery 做定任务,
//如后台tcp服务器,都需要做成supervisor管理的任务,当出现问题的时候能快束的被发现
//supervisor 配置
[program:myproject]
command=uwsgi --ini /hk/uwsgi_myproject.ini             ; the program (relative uses PATH, can take args)
stopsignal=QUIT
autostart=true
autrestart=true

//supervisord.conf开机启动
vim /lib/systemd/system/supervisord.service
# dservice for systemd (CentOS 7.0+) 
# by ET-CS (https://github.com/ET-CS) 
[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /hk/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

# 保存后
开启开机启动
systemctl enable supervisord.service 

systemctl start/restart/stop supervisord.service
# reboot

开机就自行启动,如果我们需要在增加supervisor来管理程序,只需要在supervisord.conf 方件里增加相关程序就可以了

 

© 著作权归作者所有

一一无念
粉丝 58
博文 36
码字总数 18408
作品 0
长沙
私信 提问
WEB平台DJANGO&VUE配置部署生产环境

在这篇文章中: 整体框架 一、安装和配置nginx 二、安装和配置uwsgi 三、配置访问vue 四、通过supervisor管理进程 中间可能遇到的坑 本文主要讲述了如何一步步在生产环境上部署django和vue,...

fanspring
2018/12/06
0
0
如何一步步在生产环境上部署django和vue

本文由云+社区发表 本文主要讲述了如何一步步在生产环境上部署django和vue,操作系统默认为centos 说明:后文中出现的以下字符串均表示具体的路径或者名称,含义如下: DJANGO_DIR----表示d...

腾讯云加社区
2018/12/12
46
0
centos下使用nginx+uwsgi 部署django

CentOS 下使用uwsgi+nginx部署django 当前环境: Centos7 Django2.0 Python3.7 安装uwsgi 安装Nginx Nginx常用命令 django项目结构 测试uwsgi 通过uwsgi运行该文件 配置Django与uwsgi连接 在我...

_Change_
2018/08/27
294
1
Nginx+uWSGI 部署 Django 应用

常见的 webapp 部署方式采用 或 的方式部署,今天我这备忘下采用的部署方式。 目前我这博客就是采用 Nginx + uWSGI + Python + Django 构建的,部署虽没有php那样扔到目录那么方便,但是并发和...

鉴客
2011/10/26
28.1K
8
Ubuntu 下面部署Django 项目

django 是 python 开源的 web 框架 ,django 本身运行后也是一个轻量级的服务器,可以满足本地的测试,生产环境中的 大量访问, 一般和nginx 和 apache 结合。下面以 Django 与nginx 结合为例...

水滴石川1
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何快速为网站选择合适的SSL证书

随着HTTPS普及,越来越多用户开始采用SSL证书,来对HTTP进行加密,升级到HTTPS。但面对各种不同的SSL证书,用户应如何选择?安信SSL证书将为大家讲解: 一、按SSL证书类型选择 DV SSL证书:域...

安信证书
8分钟前
0
0
被嫌弃的eval和with

本文转载于:专业的前端网站➥被嫌弃的eval和with 前面的话   eval和with经常被嫌弃,好像它们的存在就是错误。在CSS中,表格被嫌弃,在网页中只是用表格来展示数据,而不是做布局,都可能被...

前端老手
10分钟前
1
0
Allegro非常实用的快捷键-PCB环境

立题简介: 内容:简单介绍Allegro绘制的PCB环境下的快捷键; 来源:实际使用得出; 作用:对Allegro绘制PCB快捷键进行介绍; PCB环境:Cadence 16.6; 立题详解: 对“allegro”板而言,其在...

demyar
17分钟前
0
0
润乾报表与 ActiveReport JS 功能对比

简介 润乾报表是用于报表制作的大型企业级报表软件,核心特点在于开创性地提出了非线性报表数学模型,采用了革命性的多源关联分片、不规则分组、自由格间运算、行列对称等技术,使得复杂报表...

泡泡糖儿
18分钟前
0
0
仿微信打飞机游戏网页版,基于cocos2d-js游戏引擎,在线试玩,内含源码

早几年研究cocos2d的demo项目,这个是基于cocos2d-js游戏引擎,整个游戏用js编写。 玩法:鼠标拖动飞机移动即可 试玩地址 源码地址 游戏截图: 文件说明 cocos2dx:游戏引擎 res:存放游戏素...

tanghc
21分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部