24,字节跳动厂内部超高质量Flutter+Kotlin笔记

解决方案:可执行sudo lsof -i:端口号查询出具体进程,杀掉进程后,重新启动uWSGI即可

  1. 停止失败:stop无法关闭uWSGI

原因:重复启动uWSGI,导致pid文件中的进程号失准

解决方案:ps出uWSGI进程,手动kill掉

三、Nginx

==================================================================

3.1. 定义


  • Nginx是轻量级的高性能Web服务器,提供了诸如HTTP代理和反向代理、负载均衡等一系列重要特征

  • C语言编写,执行效率高

  • Nginx作用

  • 负载均衡,多台服务器轮流处理请求

  • 反向代理

  • 原理:客户端请求Nginx,再有Nginx将请求转发uWSGI运行的Django

在这里插入图片描述

3.2. 安装


sudo apt install nginx

如果下载速度很慢,考虑更换为国内源

vim /etc/apt/sources.list

更改国内源

sudo apt-get update

安装完毕后,ubuntu终端输入nginx -v显示如下:

在这里插入图片描述

3.3. 配置


  • 修改nginx的配置文件/etc/nginx/site-enable/default;sudo vim该文件

sudo vim /etc/nginx/site-enable/default

在server节点下添加新的location项,指向uwsgi的ip与端口

server{

location / {

uwsgi_pass 127.0.0.1:8000 # 所有/开头的请求均重定向到127.0.0.1到8000端口

inclue /etc/nginx/uwsgi_params; # 将所有的参数转到uwsgi下

}

}

在这里插入图片描述

一定带有;

3.4. 启动/停止


$ sudo /etc/init.d/gninx start|stop|restart|status

或者

$ sudo service nginx start|stop|restart|status

  • 启动 - sudo /etc/init.d/nginx start

  • 停止 - sudo /etc/init.d/nginx stop

  • 重启 - sudo /etc/init.d/nginx restart

  • 注意:nginx配置只要修改,就需要进行重启,否则配置不生效

在这里插入图片描述

3.5. 修改uWSGI启动模式


说明nginx负责接收请求,并把请求转发给后面的uWSGI

此模式下,uWSGI需要以socket模式启动

样例:

在这里插入图片描述

在这里插入图片描述

uWSGI配置变化后,也需要重启

在这里插入图片描述

四、nginx + uwsgi排错

============================================================================

排错问题宗旨 → 看日志!看日志!看日志

nginx日志位置:

  • 异常信息 /var/log/nginx/error.log

  • 正常访问信息/var/log/nginx/access.log

uwsgi日志位置:

项目同名目录下,uwsgi.log

4.1. 常见问题


  1. 访问127.0.0.1:80地址,502响应

502响应,代表Nginx反向代理配置成功,但是对应的uWSGI未启动

  1. 访问127.0.0.1:80/url,404响应
  • 路由的确不在Django配置中

  • Nginx配置错误,未禁止掉try_files

五、Nginx静态文件配置

========================================================================

  1. 创建新路径,主要存放Django所有静态文件。

如:/home/tarena/项目名_static/

在这里插入图片描述

  1. 在Django setting.py中添加新配置

STATIC_ROOT = ‘/home/tarena/项目名_static/static’# 注意 此配置路径为存放所有正式环境中需要的静态文件

在这里插入图片描述

  1. 进入项目,执行

$ python3 manage.py collectstatic

执行该命令后,Django将项目中所有的静态文件复制到STATIC_ROOT中,包括Django内建的静态文件

在这里插入图片描述

  1. Nginx配置中添加新配置

file : /etc/nginx/sites-enabled/default

新添加location /static 路由配置,重定向到指定的 第一步创建的路径即可

server{

location /static {

root 第一步创建文件夹的绝对路径,如:

root /home/tarena/项目名_static;

}

}

在这里插入图片描述

在这里插入图片描述

  1. 重启Nginx

在这里插入图片描述

六、404/500界面

======================================================================

定义和配置

在模板文件夹内添加404.html模板,当视图出发HTTP404异常时将会被显示

404.html仅在发布版(即setting.py中的DEBUG=False时)才起作用

当响应处理函数出发HTTP404异常时就会跳转到404界面

七、邮箱告警

=================================================================

定义和配置

当正式服务器上代码运行有报错时,可以将错误追溯信息发送至指定的邮箱

setting.py中 - 在基础邮箱授权后 添加如下配置:

关闭调试模式

DEBUG = False

错误报告接收方

ADMINS = [(‘name1’, ‘name1@example.com’), (‘name2’, ‘name2@example.com’)]

发送错误报告放,默认为root@localhost账户,多数邮件服务器会拒绝

SERVER_EMAIL = ‘eamil配置中的邮箱’

八、过滤敏感信息

===================================================================

报错邮件中会显示一些错误的追踪,这些错误追踪会出现如password等敏感信息,Django已经将配置文件中的敏感信息过滤修改为多个星号,但是用户自定义的视图函数需要用户手动过滤敏感信息

可过滤信息如下:

  • 局部变量

  • POST提交数据

8.1. 局部变量


from django.views.decorators.debug import sensitive_cariables

@sensitive_variables(‘user’, ‘pw’, ‘cc’)

def process_info(user):

pw = user.pass_word

cc = user.credit_card_number

name = user.name

说明:

  1. 若报错邮件中牵扯到user、pw、cc等局部变量的值,则会将其替换成*****,而name变量还显示其真实值

  2. 多个装饰器时,需要将其放在最顶部

  3. 若不传参数,则过滤所有局部变量的值

8.2. POST数据

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~

给大家准备的学习资料包括但不限于:

Python 环境、pycharm编辑器/永久激活/翻译插件

python 零基础视频教程

Python 界面开发实战教程

Python 爬虫实战教程

Python 数据分析实战教程

python 游戏开发实战教程

Python 电子书100本

Python 学习路线规划

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值