4.Python教程--项目部署篇(全)

本文介绍了Python在运维领域的应用,包括运维概述、常用Linux命令、周期性计划任务等,并详细讲解了如何使用nginx、uwsgi和Django进行项目部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python人工智能总目录

人工智能总目录网页链接

13、Python运维

Day01

13.1 运维

1. 运维概述
1、运维概述
  1、什么是运维
    服务器运行维护
  2、名词
    1、IDC(互联网数据中心)
      服务器租用、服务器托管、机柜租用
    2、监控软件
      常用监控软件 :zabbix、nagios、cactti
    3、常用Linux操作系统
      RedHat
      CentOS
      Ubuntu
    4、虚拟化(见图)
    5、Web正向代理
       1、访问原来无法访问的资源(google)
       2、对Web服务器隐藏用户信息
    6、nginx反向代理
      1、流程
        客户端->代理服务器->将请求转发给公司内部网络的服务器
      2、作用
        1、保证内网安全,使用反向代理阻止WEB攻击
    2、负载均衡,优化网站负载
      3、负载均衡规则
        1、轮询 :逐一循环调度
    2、权重(weight) : 指定轮询几率,权重值和访问比例成正比
    3、ip_hash:根据客户端IP分配固定的后端服务器
  3、nginx反向代理实现负载均衡
    修改nginx配置文件配置nginx调度器
    upstream servers{
        server 10.10.10.11;
    server 10.10.10.12 weight=2;
    server 10.10.10.13;
    server 10.10.10.14 backup;
    }

    server{
        listen 80;
    server_name www.lion.com;
    localtion /{
      proxy_pass http://servers
    ... 
    ... 
    }
    }
2. 运维工具
2、运维工具
  1、xshell(软件,安装在windows)
    安全终端模拟软件
  2、xshell使用方法
    文件-新建-输入服务器IP-输入用户名-输入密码-确认连接
  3、windows <-> Linux
    1、安装lszrz
      sudo apt-get install lrzsz
    2、windows -> Linux
      xshell终端 :rz
    3、Linux -> windows
      xshell终端 :sz 文件名
3. Linux常用命令
3、Linux常用命令
  1、ifconfig : IP地址和MAC地址
  2、ping :测试网络连通性
     ping IP地址 -c 次数
  3、nslookup : 解析域名对应的IP地址
     nslookup www.baidu.com
  4、sudo /etc/init.d/networking restart
     重启网络
  5、top
     Linux下任务管理器,动态显示CPU及内存使用率
  6、ps -aux
     显示系统进程命令(PID)
     ps -aux | grep 'mysql'
  7、ssh
     远程连接到服务器
     ssh 用户名@IP地址
  8、scp
     复制文件到远程服务器
     scp 文件名 用户名@IP地址:绝对路径
  9、kill
     杀死一个进程
     sudo kill 进程PID号
  10、df -h
     查看磁盘使用情况
  11、ls -lh 文件名: h提供易读容量单位
  12、chmod
     修改文件权限
     chmod +x 文件名
     chmod 644 文件名
           rw-r--r--
     r : 4
     w : 2
     x : 1
  13、wc -l 
     统计文件行数
     wc -l /etc/passwd
  14、sort
     对文件内容进行排序
     sort 文件名
  15、uniq -c
     去重重复行,并统计每行出现的次数(相邻行)
     sort 文件名 | uniq -c
  16、du -sh 目录名: 显示目录大小
  17、du -ah 目录名: 显示目录下所有文件,子目录,子目录中文件所占空间
  18、grep
    ps -aux | grep mysql
    ^ : 开头
    $ : 结尾
  19、find
    1、find 路径 -name '文件名'
       find 路径 -iname '文件名' ##忽略大小写
    2、find 路径 -ctime +3 # 3天以前文件
                        -1 # 1天以内文件
       find 路径 -cmin +5
    3、find 路径 -size +10M
       find 路径 -size -1G
4. 周期性计划任务
4、周期性计划任务
  1、进入周期性计划任务设置
    crontab -e
    按4
  2、设置周期性计划任务
    *  *  *  *  *
    分 时 日 月 周
    分:0-59
    时:0-23
    日:1-31
    月:1-12
    周:0-6

    * :所有可能值
    , :多个时间点
        00 00 1,5 * * python3 /home/tarena/a.py
    / :指定时间间隔频率
        */10 * * * * python3 /home/tarena/a.py
    - :指定一个时间段
        0点到6点之间,每隔1个小时执行命令
    0 0-6/1 * * * python3 /home/tarena/a.py
    1、每分钟执行一次a.py
       * * * * * python3 /home/tarena/a.py
    2、每小时的第3分钟和第15分钟执行
       3,15 * * * * python3 /home/tarena/a.py
    3、每天18:00-23:00,每小时执行
       0 18-23/1 * * * python3 /home/tarena/a.py
    4、每周六、日的0点0分执行
       0 0 * * 6,0  python3 /home/tarena/a.py
5. awk的使用
5、awk的使用
  1、语法格式 :awk 选项 '动作' 文件列表
  2、用法 :Linux 命令 | awk 选项 '动作'
  3、示例
    1、awk '{print "AAA"}' ip.txt
    2、df -h | awk '{print $1}' 
    3、显示当前系统的所有用户名
      cat /etc/passwd | awk -F ":" '{print $1}'
    4、提取本机的IP地址
      ifconfig | head -2 | tail -1 | awk '{print $2}' | awk -F ':' '{print $2}'
    5、nginx的访问日志路径:
       /var/log/nginx/access.log
       访问记录 :
       127.0.0.1 - - [29/Jan/2019:19:34:42 +0800] "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0"
       1、把访问过我的IP地址输出
         awk '{print $1}' access.log | sort | uniq 
       2、统计有多少个IP访问过我
         awk '{print $1}' access.log | sort | uniq | wc -l
       *3、统计每个IP地址访问我的次数,把访问次数最多的前10个IP输出
         awk '{print $1}' access.log | sort | uniq -c | sort -rn -k 1 | head -10
       4、sort的参数
         sort -n : 以数值方式来排序
     sort -r : 倒序排列
     sort -k 数字: 按照第 几 列进行排序

     sort -rnk 1 : 将第1列按照数值方式倒序排

14、Python项目部署

Day01

14.1 项目部署

1. 概念
目标:
  打开浏览器输入:www.tiger.com进入django项目首页
1、概念
  1、Django项目(Web应用)
  2、Web服务
     1、nginx :高并发处理的好
     2、apache:稳定
        LAMP :Linux、Apache、MySQL、Python/Php
    LNMP :Linux、Nginx、MySQL、Python/Php
     3、uwsgi
        是Web服务与Web框架之间简单而通用的接口
2. 项目部署(nginx+uwsgi+django)
2、项目部署(nginx+uwsgi+django)
  1、部署环境准备
    1、确保django项目能够运行
    2、安装nginx(使用apt-get安装)
       1、安装 :sudo apt-get install nginx
       2、启动 :sudo /etc/init.d/nginx restart
       3、验证 :打开浏览器,输入127.0.0.1:80-->出现Welcome to Nginx界面
    3、安装uwsgi(必须使用pip3安装)
       1、安装 :sudo pip3 install uwsgi
       2、验证 :uwsgi --http :8888 --chdir /home/tarena/project/fruitday/ --module fruitday.wsgi
3. 部署在线商城项目
3、部署在线商城项目
  1、配置uwsgi(配置文件)
    1、在项目目录(manage.py所在路径)中新建uwsgi配置文件:fruitdayUwsgi.ini
    2、vi fruitdayUwsgi.ini
      [uwsgi]
      # 指定和nginx通信的端口
      socket=127.0.0.1:8001
      # 指定项目路径
      chdir=/home/tarena/project/fruitday
      # 指定wsgi.py路径
      wsgi-file=fruitday/wsgi.py
      # 进程数
      processes=4
      # 线程数
      thread=2
      # 本项目的uwsgi自身占用端口
      stats=127.0.0.1:8080
  2、配置nginx(配置文件)
    1、sudo -i
    2、cd /etc/nginx/sites-enabled
    3、vi projectNginx.conf
    server{
        # 监听本项目的端口,浏览器输入的端口
        listen 80;
        server_name www.lion.com;
        charset utf-8;

        # 收集项目静态文件的路径
        location /static{
        alias /home/tarena/project/fruitday/static;
        }    

        # 和uwsgi通信端口和通信文件uwsgi_params
        location /{
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8001;
        }

    }
    4、sudo /etc/init.d/nginx restart
    5、拷贝uwsgi_params文件到项目目录
      cp /etc/nginx/uwsgi_params  /home/tarena/project/fruitday/
    6、关闭nginx默认监听端口80
      1、sudo -i
      2、cd /etc/nginx/sites-enabled/
      3、vi default
         # 把原来默认的80改为800
         listen 800 default_server
     listen [::]:800 default_server;
    7、sudo /etc/init.d/nginx restart
  3、收集静态文件(配置django项目)
    1、在settings.py中添加路径(STATIC_ROOT)
      STATIC_ROOT = '/home/tarena/project/fruitday/static/'
    2、收集静态文件
      python3 manage.py collectstatic
  4、uwsgi启动项目
    1、切换到项目目录
      cd /home/tarena/project/fruitday
    2、利用uwsgi启动项目
      uwsgi --ini fruitdayUwsgi.ini
  5、添加本地DNS解析
    1、sudo -i
    2、vi /etc/hosts
       ## 添加如下内容:
          127.0.0.1  www.lion.com
    3、重启网络
       /etc/init.d/networking restart
  6、最终验证
    打开浏览器,输入:www.lion.com/user/login
    跳转到登录界面,部署成功


#### pip3不能使用的解决方法 #####
1、cd /home/tarena/project/setuptools-33.1.1
2、sudo python3 setup.py install 
3、sudo apt-get autoremove python3-pip
4、sudo python3 easy_install.py pip
5、sudo apt-get install python3-pip
## 执行pip3 list会报错 ##
   错误:cannot import name 'main'
6、sudo vi /usr/bin/pip3
   把原来的3行代码注释掉,添加新代码后保存退出:
   from pip import __main__
 
   if __name__ == '__main__':
        sys.exit(__main__._main())
7、pip3 list
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值