Linux入门第三讲(完结)

准备工作

  • 将项目代码拉到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,linux,服务器,运维)