准备工作

  • 将项目代码拉到linux本地环境

  • 安装环境

    • 虚拟机当中有python冲突

      • 自己安装一个新版本python

        apt-get install python3.7
        apt-get install python3.7-venv
        
    • 创建虚拟环境

      python3.7 -m venv venv
      
    • 激活虚拟环境

       source venv/bin/activate
      
    • 安装依赖

      pip install -r requirements.txt
      

Nginx

  • Nginx

    高性能http服务器及反向代理服务器.

  • 为什么使用Nginx

    一个域名对应的只有一个IP, 一个IP对应一台服务器, 一台服务器可以启动多个服务.

    那么我们怎么让服务器知道当前的请求应该由哪个服务来处理呢?

    统一管理当前服务器内开启的对外暴露服务.

    • 减少了对外暴露的端口, 隐藏真实服务地址, 增加了安全性.
  • 安装nginx

    apt-get install nginx
    
  • 启动和关闭nginx

    service nginx start
    service nginx restart
    service nginx stop
    
    • 127.0.0.1, 0.0.0.0, localhost的区别

      • localhost

        localhost就是一个默认的本机域名, 你可以手动对其进行配置

      • 127.0.0.1

        回环地址, 127开头的地址是一类向自身发送通信的特殊地址

      • 0.0.0.0

        代表本机所有IP地址, 如果你想让外部可以访问到你的服务, 则需要将服务绑定到0.0.0.0地址上.

  • nginx部署静态资源

    • 修改nginx配置文件

      vim /etc/nginx/sites-available/default// 添加以下配置
      location /static/ {alias /var/static/;     // 当前静态资源保存的路径autoindex on;add_header Cache-Control private;expires 30d;}
      
    • 重启nginx

    • 配置静态资源的好处

      前后端分离, 静态资源的问题可以由前端自由管理和控制.

uWSGI

https://uwsgi-docs.readthedocs.io/en/latest/
  • 什么是uWSGI

    WSGI只是一种协议, 用来解决一个请求到服务端, 服务端与内部应用的交互.

    uWSGI是一个项目, 目的是通过统一的API和配置风格, 集成应用服务器, 代理, 进程管理, 监控等功能

  • 为什么需要uWSGI

    • 性能问题: 通过python manage.py runserver命令来启动的是单进程多线程的应用.
    • uWSGI可以更好地控制并发
  • 安装uWSGI

    # 在创建虚拟环境前和环境后各第一时间安装一次, 避免出错.
    pip3 install uwsgi
    
  • 配置uWSGI

    https://uwsgi-docs.readthedocs.io/en/latest/Configuration.html
    
    • 在当前项目下创建uwsgi.ini

    • 添加以下内容

      [uwsgi]
      # 项目本地服务地址
      http=127.0.0.1:5000# 观察项目得运行情况
      stats=127.0.0.1:5100# 项目的虚拟环境
      virtalenv=/home/tunan/my_blog_2/venv# 项目的根目录
      chdir=/home/tunan/my_blog_2# 绑定wsgi协议
      wsgi-file=myblog/wsgi.py# 设置进程数, 跟cpu一致即可.
      processes=12# 线程数目
      threads=4# 导出的log日志
      logto=/var/log/myblog.log# 如果django项目中使用了STATIC, 就要作静态资源的映射
      static-map=/static=static
      
  • 启动uwsgi

    uwsgi --ini uwsgi.ini &
    
  • 在nginx中做代理转发

    location /myblog/ {proxy_pass http://127.0.0.1:5000;
    }* 代理转发之后, http://127.0.0.1:5000的外部地址是http://域名/myblog.
    
    • 解决url匹配的问题

      url也要做相应的修改, 将myblog添加到最高级路径
      
  • 查看nginx日志

    cd /var/log/nginx
    
    • access.log

      访问日志

    • error.log

      错误日志

Linux入门第三讲(完结)相关推荐

  1. Linux入门第五集!MySQL8在Linux上的安装!MySQL的Linux资源分享!

    Linux入门第五集!MySQL8在Linux上的安装!MySQL的Linux资源分享! 一.Mysql的Linux版本下载! 博主采用的是mysql-8.0.25-1.el7.x86_64.rpm- ...

  2. Linux入门第四集!Jar包的入门、使用、部署!怎么打Jar包?

    Linux入门第四集!Jar包的入门.使用.部署!怎么打Jar包? 一.首先要确保JDK8已经安装成功 Linux入门第三集!JDK8的Linux版本资源分享!jdk-8u301-linux-x64. ...

  3. Linux入门第三集!JDK8的Linux版本资源分享!jdk-8u301-linux-x64.rpm官方资源分享!Linux安装JDK8教程!

    Linux入门第三集!JDK8的Linux版本资源分享!jdk-8u301-linux-x64.rpm官方资源分享!Linux安装JDK8教程! 提取码均为0916 jdk-8u301-linux-x ...

  4. 高一Python入门第三讲 石头剪刀布

    高一Python入门第三讲 石头剪刀布 专栏推荐 高一Python入门第一讲:播下一颗种子. 高一python入门第二讲 知人亦知面. 文章目录 高一Python入门第三讲 石头剪刀布 联系 3.1 ...

  5. [猿来小课]Python开发入门第三讲:Python的安装

    今天猿来小课的老师给想要学习python开发语言的同学们讲一讲Python的安装,手把手带着大家完成学习python开发第一步.有条件的小伙伴跟着我一起来实战操作吧. 猿来Python开发入门第三讲: ...

  6. Linux入门第三天——linux命令(二)

    用户和用户组管理 用户管理包括用户与组账号的管理. 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限. Unix/Lin ...

  7. Hibernate入门第三讲——Hibernate的常见配置

    在<Hibernate入门第一讲--Hibernate框架的快速入门>一讲中,我有讲到Hibernate的两个配置文件,今天就来详细地介绍这两个配置文件.在Hibernate中,我们主要使 ...

  8. SVN入门第三讲——SVN恢复到历史版本

    经过上一讲的学习,相信大家已经会简单使用SVN了,并且在上一讲中我还举了一个案例来演示.在上一讲的结尾处,我给大家留了一个悬念,某个开发人员(例如bb用户)从服务器上更新下来的代码有错,他想恢复到历史 ...

  9. Lucene快速入门第三讲——看看Lucene是如何支持中文分词的?

    在这一讲中,我们要看看Lucene到底是如何支持中文分词的?为了向大家阐述明白这个问题,咱们可先从分析器的执行过程入手. 分析器(Analyzer)的执行过程 如下图所示是语汇单元的生成过程: 从一个 ...

最新文章

  1. MIUI应用权限设置
  2. Multiple classes found for path in the registry of this declarative base. Please use a fully
  3. 浅谈Linux下的EXT3文件系统
  4. 【转】Yelp是如何实现每天运行数百万个测试的
  5. arcgis判断两个字段是否相等
  6. POJ 3694 Network
  7. android mysql 图片_android sqlite添加图片到数据库
  8. [BI项目记]-搭建代码管理环境之创建团队项目
  9. 大规模分布式系统架构与设计实战
  10. yum安装网络超时,尝试其他镜像
  11. 南阳oj 28 大数阶乘
  12. 三级缓存 SD—内存—网络
  13. 使用Python,SMTP发邮件到qq邮箱(文本/超链接/图片/表格/附件表格)
  14. 我的世界服务器物品代码,我的世界指令代码大全 2021通用指令代码汇总[多图]...
  15. SOA和Web Service
  16. URLOS实战入门—制作LAP网站环境
  17. 腾讯笔试算法题-开锁
  18. CC00155.bigdatajava——|JavaMySQL.高级.V27|——|MySQL.v28|锁分类|
  19. 代码是如何编译成程序的?
  20. [LeetCode] 871. Minimum Number of Refueling Stops @ python

热门文章

  1. 网络编程_bind函数返回值
  2. 短期内从一个外行变成了解行业的人
  3. 七年级下册计算机考试题,七年级下册信息技术复习题
  4. 起源计划直播预告丨与其心生敬佩 不如自己发光
  5. 大厂程序员凡尔赛的一天
  6. 免费流量越来越难,付费推广势在必行
  7. 云南之行 - 古城印象
  8. win7怎么跳过硬盘自检_科普一分钟|BIOS引导+MBR硬盘格式装系统方法
  9. 安装软件提示无法定位程序输入点AddDllDirectory于动态链接库Kernel32.dll上(文末有下载地址)
  10. 金木水火土命查询表-夫妻属相查询 不益婚配