**crm项目部署**

crm项目部署

1.nginx + uwsgi + django+虚拟环境+supervisor+mysql

2.django的启动方式 python3 manage.py runserver 为什么不能在生产环境用?4

django只是一个web逻辑框架,它通过python3 manage.py runserver 命令启动socket服务端

是借助python内置的wsgi框架,wsgiref框架实现的

他是一个单机模块,单进程模块,性能很低

因此在线上需要借助通过c语言编写的uwsgi这个web服务器软件,启动django

3.在进行uwsgi启动django的时候,是需要找到wsgi.pyzheg 文件模块

4.为什么要用nginx和uwsgi?

nginx 可以解决uwsgi的静态文件问题,并且支持高并发,还能限流,保障后台服务器安全等等

为什么要用uwsgi

因为uwsgi支持多进程 多线程的方式,性能很高,启动django性能更好,但是uwsgi不解析django的静态文件

我们以后会收集所有的django项目静态文件,丢给nginx取处理

5.准备crm代码

6.准备新的虚拟环境启动crm,使用virtualenvwrapper创建新的虚拟环境

1.复制环境中的模块数据:pip3 freeze > requirements.txt

2.在opt中创建虚拟环境:mkvirtualenv nginx_crm

3.创建crm所需要的依赖:pip3 install -i https://pypi.douban.com/simple -r requirements.txt

7.使用uwsgi启动crm项目

确保进入虚拟环境,然后安装uwsgi

1.进入虚拟环境:workon nginx_crm

2.安装uwsgi:pip3 install uwsgi

8.使用uwsgi命令启动django项目

uwsgi --http :8088 --module CRM.wsgi

--http指定http协议启动在 8088端口

--module 找到项目第二层的目录,里面的wsgi.py文件

如果你想启动一个http页面,提供测试访问,就用--http参数

如果你结合nginx反向代理,必须用--socket参数

uwsgi --socket :8000 --module CRM.wsgi --py-autoreload=1

由于参数过多,这里引入配置文件的概念 叫做uwsgi.ini my.ini nginx.conf

启动crm的配置文件如下 uwsgi.ini内容如下

[uwsgi]# Django-related settings# the base directory (full path)# 填写项目的绝对路径(第一层路径)chdir   =/opt/CRM1# Django‘s wsgi file# 填写crm第二层目录下的wsgi.py文件的路径module  =CRM.wsgi# 填写虚拟环境的绝对路径   cdvirtualenv(进入当前环境的绝对路径)home    =/root/Envs/nginx_crm#process-related settings#master  主进程master = true#maximum number of worker processes# 基于uwsgi的多进程,根据cpu来优化processes = 4#the socket (use the full path to be safe)# 如果你用来nginx反向代理,就填写socket参数socket = 0.0.0.0:8000# 如果你没有用nginx,想直接通过浏览器测试后端,使用http# http = 0.0.0.0:8000# ... with appropriate permissions - may be needed# chmod-socket = 664# clear environment on exitvacuum = true

此时通过:uwsgi --ini uwsgi.ini 方式启动代码

9.uwsgi支持热加载的启动方式:

uwsgi --http :8088 --module CRM.wsgi --py-autoreload=1 或

uwsgi --socket :8088 --module CRM.wsgi --py-autoreload=1

此时后端已完毕

10.配置crm收集所有的crm静态文件

编辑项目的setting.py写入如下参数:

STATIC_ROOT = ‘/opt/crmstatic‘

11.执行命令,收集crm所有静态文件

python3 manage.py collectstatic

12.配置nginx,一是支持反向代理,二是支持静态文件加载

修改nginx.conf

    location / {        # 反向代理       uwsgi_pass 0.0.0.0:8000;       include uwsgi_params;    }    #这个location是解决crm静态文件的问题    location /static {    #alias参数 就是将/static转化为/opt/crmstatic    alias /opt/crmstatic;

}

总结:1.后台django启动用uwsgi 2.nginx做反向代理,并且加载静态资源

配置supervisro工具

注意退出虚拟环境

1.安装easy_install

yum install python-setuptools

2.安装supervisor

easy_install supervisor

3.创建superisor的配置文件

echo_supervisord_conf > /etc/supervisord.conf

4.修改perivisor的配置文件,添加启动uwsgi的命令

supervisor其实就是帮咋们执行,需要手动执行命令

1.修改配置文件:vim /etc/supervisord.conf

2.在最底部添加代码如下:

#which uwsgi 查看虚拟环境启动uwsgi ,绝对路径启动uwsgi.ini(pwd)

[program:CRM1] # 任务名字

command=/root/Envs/nginx_crm/bin/uwsgi --ini /opt/CRM1/uwsgi.ini

stopasgroup=true ? killasgroup=true

5.测试用supervisor启动uwsgi,注意确保此时uwsgi已经退出

supervisord -c /etc/supervisord.conf    #启动supervisor服务端命令supervisorctl -c /etc/supervisord.conf    # supervisor客户端管理命令

6.学习supervisor的命令

start CRM1 :启动任务

stop CRM1 :关闭所有任务

status CRM1 :查看任务状态

start all :开启所有任务

stop all :关闭所有任务

status :查看任务状态

原文地址:https://www.cnblogs.com/wukai66/p/12142098.html

时间: 2024-11-08 21:23:45

**crm项目部署**的相关文章

部署CRM项目

部署CRM项目 前言 使用软件 nginx 使用nginx是为了它的反向代理功能,项目会通过Django+uWSGI+Nginx进行服务器线上部署. uWSGI python web服务器开发使用WSGI协议(Web Server Gateway Interface) python web项目默认会生成一个wsgi.py文件,确定好应用模块. 生产环境中使用的是uWSGI,实现了WSGI所有接口,C语言编写,效率很高的web服务器. uWSGI是一个全功能的HTTP服务器,实现了WSGI协议.u

crm 项目的部署

发布CRM你将使用以下软件 nginx uWSGI CentOS7 CRM项目文件 virtualenv supervisor WSGI.uWSGI python web服务器开发使用WSGI协议(Web Server Gateway Interface) python web项目默认会生成一个wsgi.py文件,确定好应用模块. 生产环境中使用的是uWSGI,实现了WSGI所有接口,C语言编写,效率很高的web服务器. uWSGI是一个全功能的HTTP服务器,实现了WSGI协议.uwsgi协议

Linux项目部署实验步骤 项目Linux部署上线

Linux项目部署实验步骤 项目Linux部署上线 nginx uwsgi+django 1.创建新的虚拟环境,且解决crm的环境依赖 2.在虚拟环境下安装uwsgi pip3 install uwsgi 3.uwsgi命令,如何启动python应用 启动python web文件 创建一个test.py写入如下代码 def application(env, start_response): start_response('200 OK', [('Content-Type','text/html'

linux⑥项目部署

目录 一.负载均衡 二.项目部署 三.配置 supervisro 工具 一.负载均衡 1.准备三台机器,准备3台虚拟机,或者和俩同桌交流一下 192.168.226.128 是nginx资源服务器,返回页面的 192.168.226.129 用作nginx负载均衡服务器 192.168.226.130 也用作nginx资源服务器 2.分别配置三台机器 确保 128和130这2台机器,能正确的资源返回即可 这三个机器,都是通过修改nginx.conf来实现效果的 128此时返回 超哥 一米五的 页

python web项目部署

python web项目部署 python django默认启动python3 manage.py runserver 0.0.0.0:8000这种方式调用wsgiref单机模块,性能较低,生产环境不用 线上使用uwsgi工具(由c语言编写的工具,性能强悍)启动django,使用方式: 在激活虚拟环境的前提下,使用uwsgi安装配置好virtualenvwrapper工具,或者virtualenv皆可 1.准备django项目 NB_crm 2.安装虚拟环境,在虚拟环境下,安装uwsgi,进行部

【Liunx】django项目部署

一.python web 项目部署 python django默认启动python3 manage.py runserver 0.0.0.0:8000这种方式调用wsgiref单机模块,性能较低,生产环境不用 线上使用uwsgi工具(由c语言编写的工具,性能强悍)启动django,使用方式: 在激活虚拟环境的前提下,使用uwsgi安装配置好virtualenvwrapper工具,或者virtualenv皆可 在虚拟环境下安装uwsgi 1.安装uwsgi工具 pip3 install -i ht

linux--后端项目部署

nginx + uwsgi + crm + mysql + virtualenv + supervisor项目部署 1.后端整起,用uwsgi启动crm 2.创建一个新的虚拟环境,用于运行crm新业务 mkvirtualenv crm_env (crmenv) [[email protected] Envs]# which python3 /root/Envs/crmenv/bin/python3 确认python3来自虚拟环境下 3.上传crm代码到服务器 4.解决代码的模块依赖 之前在一个e

JDK版本会影响项目部署

最近在公司里面部署javaweb项目的时候,项目启动的时候报错,我使用了各种方法来寻找答案,将近花了很长的时间.就在今天我终于找到了问题的根源,我开始用的是JDK1.8的版本,换了一个1.7版本的JDK,问题迎刃而解了. 用JDK1.8版本的时候启动tomcat会报下面的错误: (1)java.lang.RuntimeException: java.io.IOException: invalid constant type: 15 我也在网上查询了解决的方案(见这篇博客详细介绍:http://b

Crm 项目总结

Crm 项目总结  经过近两周的crm项目制作,体现出了各个小组的团结合作精神.同时也暴露出来许多的不足之处.  此次项目主要是多node.js的一个熟练操作程度的检验,也就是练习大家的整体运用能力,什么是node.js,Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个(只有一个)物理机的连接代码. 就我自身的问题进行分析,我觉得还是不能很好的运用node.js,熟练度不够,常