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入门第五集!MySQL8在Linux上的安装!MySQL的Linux资源分享!
Linux入门第五集!MySQL8在Linux上的安装!MySQL的Linux资源分享! 一.Mysql的Linux版本下载! 博主采用的是mysql-8.0.25-1.el7.x86_64.rpm- ...
- Linux入门第四集!Jar包的入门、使用、部署!怎么打Jar包?
Linux入门第四集!Jar包的入门.使用.部署!怎么打Jar包? 一.首先要确保JDK8已经安装成功 Linux入门第三集!JDK8的Linux版本资源分享!jdk-8u301-linux-x64. ...
- 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 ...
- 高一Python入门第三讲 石头剪刀布
高一Python入门第三讲 石头剪刀布 专栏推荐 高一Python入门第一讲:播下一颗种子. 高一python入门第二讲 知人亦知面. 文章目录 高一Python入门第三讲 石头剪刀布 联系 3.1 ...
- [猿来小课]Python开发入门第三讲:Python的安装
今天猿来小课的老师给想要学习python开发语言的同学们讲一讲Python的安装,手把手带着大家完成学习python开发第一步.有条件的小伙伴跟着我一起来实战操作吧. 猿来Python开发入门第三讲: ...
- Linux入门第三天——linux命令(二)
用户和用户组管理 用户管理包括用户与组账号的管理. 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限. Unix/Lin ...
- Hibernate入门第三讲——Hibernate的常见配置
在<Hibernate入门第一讲--Hibernate框架的快速入门>一讲中,我有讲到Hibernate的两个配置文件,今天就来详细地介绍这两个配置文件.在Hibernate中,我们主要使 ...
- SVN入门第三讲——SVN恢复到历史版本
经过上一讲的学习,相信大家已经会简单使用SVN了,并且在上一讲中我还举了一个案例来演示.在上一讲的结尾处,我给大家留了一个悬念,某个开发人员(例如bb用户)从服务器上更新下来的代码有错,他想恢复到历史 ...
- Lucene快速入门第三讲——看看Lucene是如何支持中文分词的?
在这一讲中,我们要看看Lucene到底是如何支持中文分词的?为了向大家阐述明白这个问题,咱们可先从分析器的执行过程入手. 分析器(Analyzer)的执行过程 如下图所示是语汇单元的生成过程: 从一个 ...
最新文章
- MIUI应用权限设置
- Multiple classes found for path in the registry of this declarative base. Please use a fully
- 浅谈Linux下的EXT3文件系统
- 【转】Yelp是如何实现每天运行数百万个测试的
- arcgis判断两个字段是否相等
- POJ 3694 Network
- android mysql 图片_android sqlite添加图片到数据库
- [BI项目记]-搭建代码管理环境之创建团队项目
- 大规模分布式系统架构与设计实战
- yum安装网络超时,尝试其他镜像
- 南阳oj 28 大数阶乘
- 三级缓存 SD—内存—网络
- 使用Python,SMTP发邮件到qq邮箱(文本/超链接/图片/表格/附件表格)
- 我的世界服务器物品代码,我的世界指令代码大全 2021通用指令代码汇总[多图]...
- SOA和Web Service
- URLOS实战入门—制作LAP网站环境
- 腾讯笔试算法题-开锁
- CC00155.bigdatajava——|JavaMySQL.高级.V27|——|MySQL.v28|锁分类|
- 代码是如何编译成程序的?
- [LeetCode] 871. Minimum Number of Refueling Stops @ python