https://www.cnblogs.com/pyyu/p/9481344.html?tdsourcetag=s_pcqq_aiomsg

一 uwsgi安装

1.安装uwsgi,进入到一个虚拟机环境中去安装
pip3 install uwsgi

二 运行uwsgi
2.通过uwsgi启动一个python web文件
test.py

def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]

  

通过命令启动
uwsgi --http :9000 --wsgi-file test.py
启动后可以浏览器 ip:9000 访问django程序

三 运行一个django项目

通过uwsgi启动一个python django项目

django-admin startproject s21django 创建一个项目
django-admin startapp app01 创建一个app

1.准备django项目,编写urls、views.py ,修改settings.py 里面的访问权限['*'],还有注册app
2.通过命令启动 django ,
要点就是,必须先进入django的第一层目录,然后通过相对路径找到wsgi.py
具体项目目录如图:

然后运行命令
uwsgi --http :9999 --module s21crm.wsgi
访问方式 http://192.168.1.100:9999/hello/

uWsgi热加载python程序

uwsgi --http :9999 --module s21crm.wsgi  --py-autoreload=1   # 就是代码发生改变的时候可以自动加载

四  uwsgi配置文件运行方式
 (cms1) [root@localhost s21crm]# cat uwsgi_cms.ini
#uwsgi支持ini、xml等多种配置方式,本文以 ini 为例, 在/etc/目录下新建uwsgi_nginx.ini,添加如下配置: # mysite_uwsgi.ini file
[uwsgi] # Django-related settings
# the base directory (full path)
chdir = /root/s21crm ###### django项目存放的目录
# Django's wsgi file
module = s21crm.wsgi ##### wsgi存放的地方,相对目录,是相对于chdir目录的
# the virtualenv (full path)
home = /root/Envs/cms1/ ####虚拟环境目录
# process-related settings
# master
master = true
# maximum number of worker processes
processes =
# the socket (use the full path to be safe
socket = 0.0.0.0:8888 ######
# ... with appropriate permissions - may be needed
# chmod-socket =
# clear environment on exit
vacuum = true

启动方式:

uwsgi --ini  /etc/uwsgi_cms.ini 

###################################nginx安装

1.yum install nginx -y #需要提前备好epel源

2.启动nginx web服务器
/usr/sbin/nginx 启动nginx web服务

3.配置nginx.conf配置反向代理uwsgi,以及静态资源处理

 location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass 0.0.0.0:;
}
#静态资源入口
location /static {
alias /opt/static/;
}

4.修改完,重启nginx
/usr/bin/nginx -s reload

####################################修改django项目的setting配置文件

1.修改django的setings.py文件

 #指定静态文件存放路径
STATIC_ROOT='/opt/static'
#指定静态资源,请求入口
STATIC_URL = '/static/'
STATICFILES_DIRS=[
os.path.join(BASE_DIR,"static"),
]

2.通过命令收集静态文件资源
python3 manage.py collectstatic 收集所有你使用的静态文件保存到STATIC_ROOT!

这个可能会提示你么有static目录,直接创建一个就可以,然后再次运行即可。

3.此时static_root下有了所有项目的静态资源
最后访问的项目的时候就不要用8000端口了,因为已经被nginx代理了,访问80就可以了

#################################################supervisor  安装和配置

1.通过easy_install安装
#注意此时已经退出虚拟环境了!!!!!
yum install python-setuptools
easy_install supervisor

2.通过命令生成supervisor的配置文件
echo_supervisord_conf > /etc/supervisord.conf

3.在配置文件中,添加任务,管理django项目
vim /etc/supervisord.conf #写入信息

 [program:cms]
command=/root/Envs/cms1/bin/uwsgi --ini /root/s21crm/uwsgi_cms.ini
#检测项目是否挂掉,自动重启
autorestart=true
#在supervisord启动的时候也自动启动
autostart=true
stdout_logfile=/root/cms.log
stderr_logfile=/root/cms_err.log

4.启动supervisord
supervisord -c supervisord.conf

5  查看服务是否启动

(cms1) [root@localhost s21crm]# supervisorctl
cms RUNNING pid , uptime :: 第二种:
root 0.0 1.0 ? Ss : : /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf netstat 查看uwsgi是否启动
tcp 0.0.0.0: 0.0.0.0:* LISTEN /uwsgi

6 supervisord管理命令

.管理supervisor的命令
一、添加好配置文件后 二、更新新的配置到supervisord supervisorctl update
三、重新启动配置中的所有程序 supervisorctl reload
四、启动某个进程(program_name=你配置中写的程序名称) supervisorctl start program_name
五、查看正在守候的进程 supervisorctl
六、停止某一进程 (program_name=你配置中写的程序名称) pervisorctl stop program_name
七、重启某一进程 (program_name=你配置中写的程序名称) supervisorctl restart program_name
八、停止全部进程 supervisorctl stop all
注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。

注意:你的服务器要先操作如下:才能正常访问django环境

关闭防火墙
systemctl stop firewalld
iptables -F
setenforce 0 #系统自带防火墙也给关了

三 nginx+uWSGI+django+virtualenv+supervisor发布web服务器的更多相关文章

  1. nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    nginx+uWSGI+django+virtualenv+supervisor发布web服务器   导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以 ...

  2. Linux - nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    目录 Linux - nginx+uWSGI+django+virtualenv+supervisor发布web服务器 crm django项目部署流程 使用supervisro启动uwsgi,退出虚 ...

  3. 12,nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求) 基于wsgi运行的框架 ...

  4. nginx+uWSGI+django+virtualenv+supervisor发布web服务器流程

    导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求)基于wsgi运行的框架有 ...

  5. 08 nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    一.为什么要用nginx,uwsgi? 1 首先nginx 是对外的服务接口,外部浏览器通过url访问nginx, 2nginx 接收到浏览器发送过来的http请求,将包进行解析,分析url,如果是静 ...

  6. nginx+uwsgi+django+virtualenv+supervisor部署web服务器

    wsgi 全称web server gateway interface,wsgi不是服务器,也不是python模块,只是一种协议,描述web server如何和web application通信的规则 ...

  7. nginx+uWSGI+django+virtualenv+superviso发布web服务器

    1.环境依赖 yum groupinstall "Development tools" -y yum install zlib-devel bzip2-devel pcre-dev ...

  8. Linux(8)- nginx+uWSGI+virtualenv+supervisor 发布web服务器

    一.理论梳理 WSGI是web服务器的网关接口,它是一个规范,描述了web服务器(下图中的WEB server)如何与web应用程序(下图中的Application)通信,以及web应用程序如何链接在 ...

  9. [阿里云部署] Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器

    部署地址:123.56.7.181 Ubuntu+Flask+Nginx+uWSGI+Mysql搭建阿里云Web服务器 这个标题就比之前的"ECS服务器配置Web环境的全过程及参考资料&qu ...

随机推荐

  1. Java数据结构和算法(六)--二叉树

    什么是树? 上面图例就是一个树,用圆代表节点,连接圆的直线代表边.树的顶端总有一个节点,通过它连接第二层的节点,然后第二层连向更下一层的节点,以此递推 ,所以树的顶端小,底部大.和现实中的树是相反的, ...

  2. 【python之路29】python生成器generator与迭代器

    一.python生成器 python生成器原理: 只要函数中存在yield,则函数就变为生成器函数 #!usr/bin/env python # -*- coding:utf-8 -*- def xr ...

  3. ubuntu中vi下删除键和上下左右键输入字符异常(ABCD)

    刚安装的Ubuntu系统,使用vi编辑文本的时候, 出现以下现象: 点删除键输入了 D 回车无效 上下左右为字母 光标乱跳 原因: 自带的vi功能问题 解决: 卸载原有vi,重新安装完整版本vim 执 ...

  4. git与github建立链接(将本次项目与网络GitHub同步)(二)

    第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹). 你可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创建. 现在我通过命令行在桌面新建一个TEST文件夹(你也 ...

  5. excel2013做数据透视表

    excel2013做数据透视表     Excel最新版更新到2013,相比2003.2007和2010,2013的excel界面方面有一定变化,在操作方面也有一定的便捷性.那么如何使用excel20 ...

  6. Linux下读写UART串口的代码

    Linux下读写UART串口的代码,从IBM Developer network上拿来的东西,操作比較的复杂,就直接跳过了,好在代码能用,记录一下- 两个实用的函数- //////////////// ...

  7. Struts_客户列表练习

    1.导包 2.配置文件struts.xml 3.创建CustomerAction 4.修改menu.jsp和List.jsp 5.配置web.xml

  8. PhpStorm中如何配置SVN,详细操作方法 - 郑加全的博客 - CSDN博客

      登录|注册       郑加全的博客       目录视图 摘要视图 订阅 CSDN日报0711——<离开校园,入职阿里,开启新的程序人生>      征文 | 你会为 AI 转型么? ...

  9. PHP 学习1.4

    1.session and cookie 示列: <?phpsession_start();?><!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...

  10. 【python之路15】深浅拷贝及函数

    一.集合数据类型(set):无序不重复的集合,交集.并集等功能 二.三元运算符 三.深浅拷贝 1)字符串和数字:深浅内存地址都一样 2)其他:浅拷贝:仅复制最外面第一层 深拷贝:除了最内层其他均拷贝 ...