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.解决代码的模块依赖
之前在一个env1的虚拟环境中安装过这些模块,所以先切换到env1:  workon env1
模块导出
    pip3 freeze >  requirements.txt 

再次切换到当前新建的虚拟环境,导入下载安装项目依赖模块
    pip3 install -i https://pypi.douban.com/simple  -r requirements.txt 

5.安装uwsgi工具,启动crm
    pip3 install -i https://pypi.douban.com/simple uwsgi  #uwsgi能让你的项目支持多进程,多线程,提高性能

6.使用uwsgi的配置文件,启动crm项目
在CRM项目目录下(与项目的settings.py同级的目录文件)手动创建uwsgi的配置文件

    touch uwsgi.ini  

在uwsgi.ini写入一下配置内容:
    [uwsgi]
    # Django-related settings
    # the base directory (full path)
    # 填写项目的完整绝对路径,第一层
    chdir           =/root/CRM
    # Django's wsgi file
    #指定django的wsgi文件路径,填写相对路径
    在项目的第二层目录下
    module          = CRM.wsgi
    # the virtualenv (full path)
    #填写虚拟环境的绝对路径
    #查看虚拟环境路径
    #   cdvirtualenv
    #   pwd
    home            = /root/Envs/crm_env
    # process-related settings
    # master
    master          = true
    # maximum number of worker processes
    #定义程序的多进程数量的,以cpu核数的2倍+1数量填写   2n+1 数量
    processes       = 3
    # the socket (use the full path to be safe
    #把uwsgi启动在socket协议上,的8000端口
    socket          = 0.0.0.0:8000
    #指定http协议的话,用户是可以直接访问到的,不安全的,因此使用socket协议,交给nginx去处理,可以进行并发处理,也可以进行限流,防止恶意攻击
    #http =0.0.0.0:8000

    # ... with appropriate permissions - may be needed
    # chmod-socket    = 664
    # clear environment on exit
    vacuum          = true

7.启动uwsgi的命令
    uwsgi --ini  uwsgi.ini    #指定配置文件启动 

8.配置nginx,进行静态文件解析,以及反向代理crm的动态请求
    server {
        listen       80;
        server_name  _;
        #只要在server{}标签中看到root关键字,说明这个虚拟主机是一个静态文件服务器
        #将www.crm_env.com 这个域名所有的请求,都分发给uwsgi
        #uwsi的地址,把接收到的请求交给uwsgi处理,进行反向代理,父载均衡
        #可以再次vim uwsgi.ini查看socket的ip:port
       .......
        location / {
        uwsgi_pass  127.0.0.1:8000;
        include uwsgi_params;
        }
    }

    重新加载nginx,让配置生效 :nginx -s reload
    如果报错:nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)
    启动nginx 输入命令:nginx

9.把ip做一个本地的hosts解析,添加一个假的域名
    找到本地机器的hosts文件C:\Windows\System32\drivers\etc
    192.168.16.85  www.pycrm.com
    之前写的是192.168.16.85  www.crm_env.com报错了,可能是因为带下划线吧,我猜的

    访问之后,成功了一半,一些静态文件没加载出来,css样式,js,图片都没有

10.收集crm所有的静态文件,交给nginx去处理
    修改django的settings.py配置文件,
    进到settings.py这个目录中
    vim settings.py

    添加如下配置
        STATIC_URL = '/static/'  #原来django中的配置文件中已经存在配置
        STATIC_ROOT='/opt/pycrmstatic'  #新添加的配置文件

    通过命令收集django所有的静态文件
        python3  manage.py collectstatic

11.配置nginx找到crm的静态文件
    vim /etc/nginx/nginx.conf
        #修改配置如下形式
        #配置nginx找到crm所有的静态文件
        #只要是以/static开头的请求,就走如下配置
        location  /static {
            alias  /opt/pycrmstatic/;
        }

12.重启nginx,查看crm项目
    nginx -s reload
    http://www.pycrm.com/login/#

13.通过supervisor进程管理工具,管理uwsgi的后台,这个工具,其实就是在帮我们执行启动命令
    需要下载安装即可
    yum install supervisor

14.配置supervisor的配置文件
    [[email protected]_linux css]# echo_supervisord_conf >  /etc/supervisor.conf  #生成配置文件的目录

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

    将这些内容添加到supervisord.conf的下面
    [program:CRM]  #CRM要管理的进程,也就是项目名
    command=/root/Envs/crm_env/bin/uwsgi --ini  /root/CRM/CRM/uwsgi.ini       ; 程序启动命令
    autostart=true          ; 在supervisord启动的时候也自动启动
    stopasgroup=true    ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
    killasgroup=true   ;默认为false,向进程组发送kill信号,包括子进程

15.启动supervisord服务端
    # 再次修改配置文件后,需要重启supervisorctl  命令:supervisorctl reload
    supervisord -c  /etc/supervisord.conf # 启动supervisorctl

    进入supervisor的管理交互式终端,管理任务
    [[email protected] ~]# supervisorctl -c /etc/supervisord.conf
    CRM    RUNNING   pid 37756, uptime 0:00:04

16.supervisor的管理命令
    status #查看状态
    start all #启动所有任务
    restart all #重启所有任务

原文地址:https://www.cnblogs.com/tangjian219/p/12088303.html

时间: 2024-08-30 13:17:34

linux--后端项目部署的相关文章

22.前后端项目部署实战

1.前后端分离项目介绍 1.什么是前后端项目? 简单来说,就是将前端项目和后端项目进行独立部署,互相之间通过token进行数据交互. 2.前后端分离与动静分离有什么区别? 动静分离,是将动态页面编译成静态,然后缓存到CDN上面. 前后端分离,前端项目被编译成HTML,但是JS会通过Ajax获取数据,所以前端页面内容依然是动态的. 3.前后端项目采用renren-fast来实现 4.前后端项目环境 服务 台数 地址 功能 MySQL 3台 10.0.0.51,10.0.0.52,10.0.0.53

Linux之项目部署

一 部署环境准备(准备Python3和虚拟机环境解释器,virtualenvwrapper) 1 下载virtualenvwrapper pip3 install -i https://pypi.douban.com/simple virtualenvwrapper 2 修改Python3的环境变量,写入到/etc/profile中 PATH=/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/ruby

linux 上项目部署步骤详解

此文预设linux已经安装完毕,进行余下步骤的总结! 第一步:实现linux系统与windows间的网络互通 虚拟机软件版本VMware v7.1.4以上,VMware按照完成之后,在Windows的网络连接中会出现VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两个虚拟网卡的连接. 虚拟机可使用VMnet8,所以需要将VMware Network Adapter VMnet8的ip地址与Windows的ip地址设为同一网段内

linux(centos) 项目部署阶段相关命令汇总

1.ssh免密码登陆 主要命令 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys-->添加公钥 service sshd restart -->重启ssh服务 参考链接: http://jingyan.baidu.com/article/2fb0ba4043124a00f2ec5f0f.html 2.查看系统相关信息: uname -a 查看OS详细信息 file /bin/ls 显示系统程序信息,就能看出多少位 获得机器字长 getc

项目部署 nginx + uwsgi

1.项目部署的相关概念 关于部署流程,主要包含以下两个方面:部署方案.部署环境: 1.1部署方案 1. 分析项目的产品需求文档,定好部署方案的方向 2. 分析项目开发文档,按照功能边界,设计部署的结点 3. 分析项目功能软件,合理的取舍,选符合当前业务场景的 4. 梳理项目部署涉及到的部署软件实现方案,根据上面第2点确定的结点,确定初版部署方案 5. 根据项目实际情况,调整优化并确定项目部署方案 1.2部署环境 1.2.1个人开发环境: 工作人员:自己 工作平台:个人笔记本.公司配的电脑 平台特

Linux安装Eclipse及项目部署

安装Eclipse 1. 首先解压Eclipse tar -zxvf eclipse-standard-kepler-SR1-linux-gtk.tar.gz -C user/local/src 2. 重新启动 加载JDK 3. 桌面创建快捷方式 Create Launcher 选择启动文件 切换图标 项目部署 1. 首先打开压缩文件 $ unzip text.zip 2. 然后修改 .sql文件的编码 查看文件编码 file bank.sql 修改文件编码 iconv -f GBK -t UT

Linux环境下快速项目部署

由于Linux和Java一样开源,所以现在在服务器的部署上基本上都是采用Linux平台作为服务器,然后部署项目!在开发项目的过程中,绝大部分程序猿还是使用最经典的windows操作系统,虽然Linux也有桌面化的系统,对于国人来说,还是不太习惯,并且国内的软件绝大部分都不支持Linux平台,所以在使用的频率那是相当的少! 在开发中,开发环境中编译使用等一系列通过后,还不能说功能已经ok,因为环境一旦变化,出现的问题的可能是自己没有考虑的,所以程序猿都知道真实的环境才是最可靠的,有时候出现的问题,

linux系统上部署一个web项目

对于apache开源项目中tomcat的认识,大多停留在Windows下,这次我通过一个简单的实例来介绍一下在linux下如何搭建tomcat环境,并且部署一个web项目. 先从基本安装开始,可别小看linux下的文件安装,那可不是windows下点击next就可以完成,但也并不复杂,重要的是我们学会怎么用快速理解和掌握它,那么一切就变得容易多了,开始吧,当然在安装部署tomcat之前必须先安装好jdk1.6的环境,具体见上一遍博客linux下jdk的安装. 1.先从Apache的官方网站下载下

Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包

Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ©Copyright 蕃薯耀 2017年3月6日 http://www.cnblogs.com/fanshuyao/ 一.Linux快速部署W

windows下载的java项目部署到linux的各种解决方案

1.Java是跨平台的,在linux下有问题,主要一是文件读取权限:二检查下系统环境变量设置可正确!.profile JavaWeb_将Windows平台上开发的JavaWeb项目部署到Linux平台上 步骤: 1.在Windows平台上,通过MyEclipse的[File] -> [Export] -> 将项目打包成.war文件: 2.在Windows平台上,删除.war文件中与Linux平台上重复或冲突的.jar文件,一般会在项目的notes文件中说明: 3.通过浏览器访问Linux平台的