nginx + virtualenv + uwsgi + django + mysql + supervisor 部署项目

一、安装Python3

二、安装MariaDB,并授权远程

  1. grant all privileges on *.* to root@'%' identified by'mysql密码';
  2. flush privileges;

三、导出数据库

  1. mysqldump --databases -uroot -p crmproject > MyCRM.dump

四、使用xftp或者winSCP传入项目和数据库

五、导入数据库

  1. mysql -uroot -p < /opt/MyCRM.dump

六、修改项目的settings.py文件

  1. ALLOWED_HOSTS = ['*']
  2. STATIC_ROOT = '/opt/static'
  3.  
  4. 数据库的连接配置

七、在虚拟环境里安装安装uwsgi

  1. pip3 install uwsgi

八、使用uwsgi启动项目

方式1:直接输入命令启动

  1. uwsgi --http :8000 --module CRMProject.wsgi
  2.  
  3. # --module 指定项目文件夹路径

方式2:使用ini配置文件启动

  1. vim uwsgi.ini
  2.  
  3. '''
  4. 配置文件如下
  5.  
  6. [uwsgi]
  7. # Django-related settings
  8.  
  9. # the base directory (full path)
  10. # 项目的绝对路径
  11. chdir = /opt/CRMProject
  12.  
  13. # Django's wsgi file
  14. # 项目中根据chdir找到wsgi.py文件
  15. module = CRMProject.wsgi
  16.  
  17. # the virtualenv (full path)
  18. # 虚拟环境的绝对路径
  19. home = /root/Envs/MyCRM
  20.  
  21. # process-related settings
  22. # master
  23. # 主进程
  24. master = true
  25.  
  26. # maximum number of worker processes
  27. # 子进程数
  28. processes = 1
  29.  
  30. # the socket (use the full path to be safe
  31. #使用nginx反向代理,填写socket连接
  32. socket = 0.0.0.0:8000
  33.  
  34. # 直接使用uwsgi运行http服务,使用http连接
  35. #http = 0.0.0.0:8000
  36. # ... with appropriate permissions - may be needed
  37. # chmod-socket = 664
  38. # clear environment on exit
  39. vacuum = true
  40.  
  41. # 热启动时间设置
  42. py-autoreload=1
  43.  
  44. '''
  1. # 将每1秒检查python模块更改并最终重新启动实例
  2. uwsgi --ini uwsgi.ini

现阶段能通过IP:8000访问项目,但是目的是通过80端口访问

九、修改nginx配置

  1. vim nginx/conf/nginx.conf
  2.  
  3. '''配置如下'''
  4. server {
  5. listen 80;
  6. server_name 192.168.11.59;
  7.  
  8. location / {
  9. include uwsgi_params;
  10. uwsgi_pass 0.0.0.0:8000;
  11. }
  12. location /static {
  13. alias /opt/static;
  14. }
  15. }
  1. # 收集配置文件(在项目的虚拟环境下)
  2. python3 manage.py collectstatic

重启nginx,此时启动nginx和通过uwsgi启动项目即能正常访问

十、使用supervisor管理

1.安装

  1. ### 使用python2环境安装
  2. ### 使用python2环境安装
  3. ### 使用python2环境安装
  4.  
  5. yum install python-setuptools
  6. easy_install supervisor

2.通过命令生成supervisor的生成配置文件

  1. echo_supervisord_conf > /etc/supervisor.conf

3.修改配置文件

  1. # 在文件末尾添加
  2.  
  3. [program:crm]
  4. command=/root/Envs/MyCRM/bin/uwsgi --ini /opt/CRMProject/uwsgi.ini
  5. stopasgroup=true
  6. killasgroup=true
  7.  
  8. # program 指定项目名称
  9. # command 启动程序的命令,一定要绝对路径
  10. #stopasgroup=false 默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
  11. #killasgroup=false 默认为false,向进程组发送kill信号,包括子进程

4.启动supervisor

  1. supervisord -c /etc/supervisor.conf

5.使用supervisor启动和管理项目

方式1:通过交互式启动

  1. [root@localhost opt]# supervisorctl -c /etc/supervisor.conf
  2. crm RUNNING pid 3752, uptime 0:40:52
  3. supervisor>
  4.  
  5. start/stop/restart/status 项目名
  6. start/stop/restart/status all

方式2:通过参数直接启动

  1. supervisorctl -c /etc/supervisor.conf start all

Centos部署项目的更多相关文章

  1. netcore项目在Centos部署:nohup和supervisor方式

    Centos上部署netcore项目 1 准备工作 在Centos上部署netcore应用程序有两种常用方式:nohup和supervisord,这里简单演示一下这两种部署方式. 首先我们写一个简单的 ...

  2. SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1

    在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...

  3. git管理和自动部署项目

    当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来 ...

  4. linux的tomcat服务器上部署项目的方法

    在tomcat服务器上部署项目的前提,是我们已经准备好了tomcat服务器.在CentOs环境下部署JavaWeb环境,部署tomcat服务器在前面的文章中已经总结过了,可以参考以前文章. 一  to ...

  5. VMware虚拟机安装CentOS6.4、部署web项目全过程(设置固定IP、安装JDK、Tomcat、Redis、部署项目)

    概述:该篇随笔介绍了在VMware上安装centOS.在centOS上安装JDK.安装Tomcat.安装Redis并部署项目的全过程,虽然参考了很多优秀的文章,但实践.整理.补充都很用心,若要复制粘贴 ...

  6. 超详细Pycharm部署项目视频教程

    在实际的工作中,不管你是开发.测试还是运维人员,都应该掌握的一项技能就是部署项目,简单说就是把项目放到服务器中,使其正常运行.今天猪哥就以咱们的微信机器人项目为例子,带大家来部署一下项目.本文将会详细 ...

  7. 腾讯云linux系统部署项目无法通过外网访问

    最近尝试使用了一下腾讯去的linux系统服务器,但是却遇到各种问题,下面记录的问题是项目部署完成后却无法通过外网访问. 服务器:腾讯云 系统 :CentOS 8.0 64位 处理思路:通过度娘百般摸索 ...

  8. Centos8部署jdk、mysql8、tomcat,并部署项目到tomcat中

    目录 Linux系统的学习与使用(Centos8) Linux系统的介绍 为什么要选择Linux作为服务器运行的操作系统 目录结构 使Linux系统能够联网(登录root用户) 常用命令 cd命令(用 ...

  9. docker | jenkins 实现自动化部署项目,后端躺着把运维的钱挣了!(上)

    前言 背景 最近在帮学校导师写项目,团队有4个人,项目前后端分离.如果是选择瀑布式开发:(在约定好接口的情况下)A.B同学写前端,C.D同学写后端,然后约定一个时间统一联调,最后将项目交付安装到客户机 ...

随机推荐

  1. ISO/IEC 9899:2011 摘要

    本国际标准指定了C编程语言的形式并建立了对用它所表达的程序的解释.其目的在于促进在多种计算机系统上的C语言程序的可移植性.可靠性.可维护性以及高效的执行. 为了详细地说明C语言本身以及C语言执行库,包 ...

  2. 使用GridSearchCV进行网格搜索微调模型

    import numpy as np import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer f ...

  3. Python中解决递归限制的问题

    在做某些算法时,使用递归会出现类似下面的报错: RuntimeError: maximum recursion depth exceeded python默认的递归深度是很有限的,大概是900多的样子 ...

  4. EasyNVR摄像机网页直播之问题解决:Failed:SYSTEM\CurrentCont......\Application\EasyNVR_Service registry key already

    背景分析 经常使用EasyNVR产品的用户都知道,作为音视频行业互联网直播产品,EasyNVR主要功能在于通过RTSP/ONvif协议,接入前端音视频采集设备,通过EasyNVR软硬件产品将拉取过来的 ...

  5. PHP命令行参数

    原文地址:http://php.swoole.com/wiki/PHP%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0   PHP命令行参数 目录 [隐藏]  ...

  6. 用Postman做接口测试

    The higher your test coverage, the more flexible and bug-resistant your code will be, and the less t ...

  7. springboot2 配置 https

    package cn.xiaojf.aibus.configure; import org.apache.catalina.Context; import org.apache.catalina.co ...

  8. LeetCode 131. 分割回文串(Palindrome Partitioning)

    131. 分割回文串 131. Palindrome Partitioning 题目描述 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串. 返回 s 所有可能的分割方案. LeetC ...

  9. 程序员生存之道,多写bug!

    1.代码写得好,bug少,看起来就像闲人. 2.注释多,代码清晰,任何人接手非常方便,看起来谁都都可以替代. 3.代码写得烂,每天风风火火改bug,各种救火,解决各种线上重大问题,于是顺理成章为公司亮 ...

  10. Django重新添加字段然后迁移给定默认值依然迁移不生效

    1.将对应app下的migrations文件夹下面的除了__init__.py文件外全部删除 2.delete from django_migrations where app='当前模型的app名称 ...