Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是, Nginx 是免费的并可以商业化,配置使用也比较简单
Nginx 特点
高并发、高性能
模块化架构使得它的扩展性非常好
异步非阻塞的事件驱动模型这点和 Node.js 相似
相对于其它服务器来说它可以连续几个月甚至更长而不需要重启服务器使得它具有高可靠性
热部署、平滑升级
完全开源,生态繁荣
Nginx 作用Nginx 的最重要的几个使用场景:
静态资源服务,通过本地文件系统提供服务
反向代理服务,延伸出包括缓存、负载均衡等
API 服务, OpenResty对于前端来说 Node.js 并不陌生, Nginx 和 Node.js 的很多理念类似, HTTP 服务器、事件驱动、异步非阻塞等,且 Nginx 的大部分功能使用 Node.js 也可以实现,但 Nginx 和 No ...
Docker
未读如果 docker 所在的环境是通过代理服务器和互联网连通的,那么需要一番配置才能让 docker 正常从外网正常拉取镜像。然而仅仅通过配置环境变量的方法是不够的。本文结合已有文档,介绍如何配置代理服务器能使docker正常拉取镜像。
本文使用的docker 版本是
12root@ubuntu:/# docker --versionDocker version 27.3.1, build ce12230
问题现象如果不配置代理服务器就直接拉镜像,docker 会直接尝试连接镜像仓库,并且连接超时报错。如下所示:
123root@ubuntu:/# docker pull pythonUsing default tag: latestError response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting heade ...
概述使用requirements.txt管理依赖的问题 正在开发一个使用第三方软件包(如fastapi)的Python项目。你需要指定这个依赖,以便其他开发人员和自动化系统能够运行你的应用程序。 于是,你决定在一个requirements.txt文件中包含flask的依赖项:
1fastapi
这时候,一切在本地都正常运行,而在对应用程序进行了一番修改之后,你决定将其部署到生产环境。这就是事情变得有点棘手的地方…
上述的requirements.txt文件没有指定使用fastapi的哪个版本。在这种情况下,通过pip install -r requirements.txt将默认安装最新版本。这是可以的,除非最新版本中有接口或行为更改,导致我们的应用程序出现问题。
举个例子,假设fastapi的作者发布了一个新版本的fastapi。然而,它与你在开发过程中使用的版本不兼容。
现在,假设你将应用程序部署到生产环境并运行pip install -r requirements.txt。Pip获取了最新的不向后兼容的fastapi版本,就这样,你的应用程序在生产环境中崩溃了。
因此,为了解 ...
云服务器
未读准备
windows10
虚拟主机(主机)
域名
搭建免费云服务器官方网址:46云接下来选中免费云产品
接下来选这个,如果觉得内存容量不够,可以购买这个里面的低价服务器,这是免费,不用担心出很多的问题,慢慢享受使用呀
继续点击加入购物车,进入后往下右边点击购买
打勾了同意《服务条款》,然后点击“立即结账”
拿到白嫖主机之后进入到用户中心,往下找到自己的虚拟主机或者服务器来点击操作
接下来点击“操作”,进入界面
进入界面之后,然后这里登录一下虚拟主机面板
找到“域名解析”,点击进入
如果域名解析好了,就填写域名即可。
如果没有域名,就往下最后参考按教程来操作,即可。
接下来,点击打开FTP/文件管理中的在线文件管理
这里就是存放网站源码的地方
接下来,现在只需要上传一下源码就OK点击上传文件
点击“选择文件”,注意:选中之前,要把多个文件或文件夹压缩成zip格式上传上传后在文件后面会提解压的按钮,点击解压即可.
上传成功后返回在线文件管理,可以看到源码现在是压缩包,咱们现在点击“解压”进行解压一下
解压成功后,这样 ...
前言原文链接:HEXO | 博客文章链接优化之ABBRLINK hexo的默认永久链接是在_config.yml里的配置permalink: :year/:month/:day/:title/。这种默认配置有个很不能接受的缺点,文件名为中文,会导致url链接里面出现中文。这次我来介绍一个比较方便好用的解决方案hexo-abbrlink插件。
安装hexo-abbrlink插件1npm install hexo-abbrlink --save
然后在 Hexo的根目录的配置文件_config.yml 中修改:
站点配置文件(_config.yml)里:
123456789101112131415permalink: post/:abbrlink.html## abbrlink配置abbrlink: alg: crc32 #support crc16(default) and crc32 进制 rep: hex #support dec(default) and hex 算法 drafts: false #(true)处理过程,(false)不处理过程。 ...
下面所有的标签,来源原创:安知鱼
段落文本 p标签语法配置参数样式预览示例源码1{% p 样式参数(参数以空格划分), 文本内容 %}
字体: logo, code
颜色: red,yellow,green,cyan,blue,gray
大小: small, h4, h3, h2, h1, large, huge, ultra
对齐方向: left, center, right
彩色文字在一段话中方便插入各种颜色的标签,包括:红色、黄色、绿色、青色、蓝色、灰色。
超大号文字文档「开始」页面中的标题部分就是超大号文字。Volantis
A Wonderful Theme for Hexo
1234567- 彩色文字 在一段话中方便插入各种颜色的标签,包括:{% p red, 红色 %}、{% p yellow, 黄色 %}、{% p green, 绿色 %}、{% p cyan, 青色 %}、{% p blue, 蓝色 %}、{% p gray, 灰色 ...
目录结构目录结构,如下所示:
12345.├── app│ └── main.py├── Dockerfile└── requirements.txt
创建FastAPI项目
创建一个目录并输入它。app
使用以下命令创建文件:main.py切换到fastapi目录(如果没有,就自行创建项目即可)下创建文件/目录1cd /home/dockers/fastapi
1mkdir app
编写main.py,命令下vi main.py12345678from fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root(): return {"Hello": "World"}
编写requirements.txt,命令下vi requirements.txt12fastapi==0.104.0uvicorn==0.23.2
创建Dockerfile创建一个文件:Dockerfile
1vi Dockerfile
编写文件
...
location转发请求:当nginx接受到客户端的请求时,获取请求的url,和location的表达式进行匹配,然后转发请求
语法123location url表达式{ 请求转发的目标}
url表达式通过指定模式来与客户端请求的URI相匹配,基本语法如下:location [=|~|~*|^~|@] pattern{……}
没有修饰符 表示:必须以指定模式开始,如:12/ 请求的路径必须以/开头,就是根目录下的所有请求/nginx 请求的路径必须以/nginx开头,就是根目录下的nginx下的请求
123456server { server_name baidu.com; location /abc { …… }}
结果访问网站都可以,如下:1234http://baidu.com/abchttp://baidu.com/abc?p1http://baidu.com/abc/http://baidu.com/abcde
=表示:必须与指定的pattern模式精 ...
Docker
未读ctypes是一个超级强大的Python库ctypes 是 Python 的外部函数库。它提供了与 C 兼容的数据类型,并允许调用 DLL 或共享库中的函数。可使用该模块以纯 Python 形式对这些库进行封装。
最近要使用python调用C++编译生成的DLL动态链接库,因此学习了一下ctypes库的基本使用
一、重点讲解 调用方式 和 导出在Windows上动态库是dll文件,在linux上动态库是so文件。下面以windows上的操作为例C++ 的函数现有两种调用约定:__cdecl 和 __stdcall
ctypes.CDLL() 和 ctypes.WinDLL() 加载DLL方式其对应的python ctypes有两种加载方法,如下
c++ 函数调用方式
python ctypes加载方式
__cdecl
ctypes.CDLL(dll名字)
dll = CDLL(r’MFCLibrary1.dll’)
__stdcall
ctypes.WinDLL(dll名字)
dll = WinDLL(r’MFCLibrary1.dll’)
c ...
FastAPI
未读在FastAPI中 使用RedisFastAPI官网关于异步的解释描述建议要使用FastAPI的人,都看看作者关于异步的描述
思路把redis_cli对象挂载到FastAPI app 对象上面,然后在视图函数中使用默认的回调参数request对象获取
2021年1月30号更新 直接使用全局redis客户端对象,实现方式在最下面。


