• 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/bin/:/root/bin
    

     3 修改~/.bashrc 写入变量

    4 新建一个虚拟环境  boy

    mkvirtualenv boy
    

     5 准备前后端代码

    使用wget 下载下来
    如:
    wget 前端文件地址 
    wget后端文件地址
    如果代码在本地,传到服务器 使用 lrzsz 和xftp工具
    

     6 下载完成后,解压缩代码

    unzip 前端的压缩文件
    unzip 后端的压缩文件  
    
    
    注意 根据你的压缩文件的格式 选择解压缩的方式
    

     7 前端中的代码

    (1)准备node打包环境

    wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz
    

      (2)解压缩node包,配置环境变量,使用npm和node命令

    tar命令解压文件
    tar -xzf    node-v8.6.0-linux-x64.tar.gz
    

        (3)检测node和npm

    node -v
    npm -v
    
    
    #注意要是完成了之后,执行这两个命令 结果都是出现相应的版本号
    

       (4)安装vue项目所需的包

    npm install    #下载Vue所需的包
    npm run build #执行Vue项目
    #这两条都正确配置之后,就会生成一个 dist 静态文件目录,整个项目的前端内容和index.html都在这里了
    

       (5)等待nginx加载这个dist文件夹

    8 部署后端代码所需的环境

    (1)激活虚拟环境

    workon boy
    

     (2) 通过一条命令,到处本地的所有软件包依赖

    pip3 freeze > requirements.txt
    

     (3) 将这个requirements.txt传到服务器中,在服务器的新虚拟环境中,安装这个文件,就能安装所有的软件包了

    pip3 install -r  requirements.txt 
    

     这个文件的内容如下:项目所需的软件包都在这里

    [root@web02 opt]# cat requirements.txt
    			certifi==2018.11.29
    			chardet==3.0.4
    			crypto==1.4.1
    			Django==2.1.4
    			django-redis==4.10.0
    			django-rest-framework==0.1.0
    			djangorestframework==3.9.0
    			idna==2.8
    			Naked==0.1.31
    			pycrypto==2.6.1
    			pytz==2018.7
    			PyYAML==3.13
    			redis==3.0.1
    			requests==2.21.0
    			shellescape==3.4.1
    			urllib3==1.24.1
    			uWSGI==2.0.17.1
    		
    

    (4)准备uwsgi 支持高并发的启动python项目(注意uwsgi不支持静态文件的解析,必须用nginx去处理静态文件

    1 安装uwsgi

     pip3 install -i https://pypi.douban.com/simple uwsgi
    

     2 学习uwsgi的使用方法

    通过uwsgi启动一个python web文件
    uwsgi --http :8000 --wsgi-file   s15testuwsgi.py
    	--http 指定http协议 
    	--wsgi-file  指定一个python文件
    			
    通过uwsgi启动django项目,并且支持热加载项目,不重启项目,自动生效 新的 后端代码
    uwsgi --http  :8000 --module s15drf.wsgi    --py-autoreload=1
    --module 指定找到django项目的wsgi.py文件
    

     5 使用uwsgi 的配置文件,启动项目

    1.创建一个uwsgi.ini配置文件,写入参数信息
    touch uwsgi.ini    #创建uwsgi.ini配置文件
    
    写入
    									
    [uwsgi]
    # Django-related settings
    # the base directory (full path)
    #指定项目的绝对路径的第一层路径!!
    chdir           = /opt/s15vuedrf/luffy_boy/
    
    # Django's wsgi file
    #  指定项目的 wsgi.py文件!
    #  写入相对路径即可,这个参数是以  chdir参数为相对路径
    module          = luffy_boy.wsgi
    
    # the virtualenv (full path)
    # 写入虚拟环境解释器的 绝对路径!!!!!!
    home            = /root/Envs/s15vuedrf
    # process-related settings
    # master
    master          = true
    # maximum number of worker processes
    #指定uwsgi启动的进程个数				
    processes       = 1
    
    #这个参数及其重要!!!!!!
    # the socket (use the full path to be safe
    #socket指的是,uwsgi启动一个socket连接,当你使用nginx+uwsgi的时候,使用socket参数
    socket          = 0.0.0.0:8000
    
    
    #这个参数是uwsgi启动一个http连接,当你不用nginx只用uwsgi的时候,使用这个参数
    #http  =  0.0.0.0:8000
    
    # ... with appropriate permissions - may be needed
    # chmod-socket    = 664
    # clear environment on exit
    vacuum          = true
    

    6 使用uwisgi配置文件启动项目

    uwsgi --ini  uwsgi.ini
    

    supervisor进程管理工具

    1 将Linux进程运行在后台的方法有哪些

    第一个,命令后面加上 &  符号
    python  manage.py  runserver & 
    		
    第二个 使用nohup命令
    
    第三个使用进程管理工具
    

     2.安装supervisor,使用python2的包管理工具 easy_install ,注意,此时要退出虚拟环境!!!!

    如果没有此命令,使用以下命令安装
    yum install python-setuptools   
    easy_install supervisor
    

     3 通过命令,生成一个配置文件,这个问价就是写入你要管理的进程任务

    echo_supervisord_conf > /etc/supervisor.conf
    

     4 编辑这个配置文件,写入操作django项目的命令

    vim /etc/supervisor.conf   #进入编辑
    直接到最底行,写入以下配置
    [program:s15luffy]
    command=/root/Envs/s15vuedrf/bin/uwsgi  --ini  /opt/s15vuedrf/luffy_boy/s15drf/uwsgi.ini
    

     5 启动supervisord服务端,指定配置文件启动

    supervisord -c  /etc/supervisor.conf
    

    6 通过supervisorctl管理任务

    supervisorctl -c /etc/supervisor.conf 
    

    7 supervisor管理django进程的命令如下

    supervisorctl直接输入命令会进入交互式的操作界面
    >  stop s15luffy 
    >  start s15luffy 
    >  status s15luffy 
    

     8 启动后端代码

    nginx的配置步骤如下

    1 编辑安装nginx

    2 nginx.conf配置如下

    #第一个server虚拟主机是为了找到vue的dist文件, 找到项目的index.html
    server {
            listen       80;
            server_name  192.168.13.79;
    		
    		#当请求来自于 192.168.13.79/的时候,直接进入以下location,然后找到vue的dist/index.html 
            location / {
                root   /opt/s15vuedrf/07-luffy_project_01/dist;
                index  index.html;
            }
    		
    	}
    	
    #由于vue发送的接口数据地址是 192.168.13.79:8000  我们还得再准备一个入口server
    server {
    	listen 8000;
    	server_name  192.168.13.79;
    	
    	#当接收到接口数据时,请求url是 192.168.13.79:8000 就进入如下location
    	location /  {
    		#这里是nginx将请求转发给  uwsgi启动的 9000端口
    		uwsgi_pass  192.168.13.79:9000;
    		# include  就是一个“引入的作用”,就是将外部一个文件的参数,导入到当前的nginx.conf中生效
    		include /opt/nginx112/conf/uwsgi_params;
    	}
    }
    

    3 启动nginx

    ./sbin/nginx     #执行这句话 直接启动
    此时可以访问 192.168.13.79  查看页面结果

    注意注意:redis必须安装好,存放数据
  • 相关阅读:
    python
    python 随机数生成
    PowerShell学习笔记二_变量、Select、Foreach、where
    PowerShell学习笔记一_cmdlet、管道、如何入门
    vscode 配置
    mvn 命令
    Microsoft 365:如何在Word文件中插入另一个不同文档内容或者链接
    Microsoft 365:如何使用Tag来管理在Teams中提到的组
    Microsoft 365:Microsoft Teams 实时字幕助力您打破语言沟通障碍
    2020年SharePoint Saturday _ China, 精彩回顾
  • 原文地址:https://www.cnblogs.com/mlhz/p/10257113.html
Copyright © 2020-2023  润新知