深入理解Nginx:模块开发与架构解析
0 参考资料书中示例代码
Nginx 源码注释:https://github.com/chronolaw/annotated_nginx
2 如何编写HTTP模块2.7 Nginx提供的高级数据结构12345- ngx_queue_t 双向链表- ngx_array_t 动态数组- ngx_list_t 单向链表- ngx_rbtree_t 红黑树- ngx_radix_tree_t 基数树
第3部分 深入Nginx8 Nginx 基础架构8.2.1 Nginx的模块化设计ngx_module_t接口及其对核心、事件、HTTP、mail等4类模块ctx上下文成员的具体化:
官方Nginx共有五大类模块:核心模块、配置模块、事件模块、HTTP模块、mail模块。这五类模块中,配置模块与核心模块是与Nginx框架密切相关的,是其他模块的基础。而事件模块是HTTP模块和mial模块的基础。HTTP模块和mail模块的“地位”相似,都更关注于应用层面。在事件模块中,ngx_event_core_module事件模块是其他有事件模块的基础;在HTTP模块中,ngx_module_core_m ...
02 - 深度学习算法(必修)
0 参考资料书籍推荐
统计学习方法 (第2版)
动手学深度学习(PyTorch版)
课程推荐
专为程序员设计的高等数学
程序员的数学基础课
专为程序员设计的统计课
专为程序员设计的线性代数(课程代码)
《深度学习必修课》
深度学习中运用到的数学知识是很多,但没必要陷入去研究数学,重在理解,够用即可。
Markdown数学公式、符号
conda工具常用命令:
conda activate env_name # 切换至 env_name 环境
conda deactivate # 退出环境
conda info -e # 显示所有已经创建的环境 或者 使用 conda env list
conda list # 查看所有已经安装的包
conda install package_name # 在当前环境中安装包
conda remove package # 删除当前环境中的包
conda create -n env_name package_name # 创建名为 env_name 的新环境, ...
iterm2 + oh-my-zsh 终端配置完整教程
0 参考资料https://zhuanlan.zhihu.com/p/550022490
iterm2奇技淫巧:https://zhuanlan.zhihu.com/p/522534821iterm2用法技巧:https://lhajh.github.io/mac/2018/04/25/Iterm2-usage-and-skills.html
2 安装oh-my-zshoh-my-zsh更强大的命令行工具,解放双手,比系统自带bash更加酷炫、高效,可以实现更强大的命令补全,命令高亮等一系列酷炫功能。同时支持各种自定义选项,并支持扩展。
1sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
2.1 安装配色库1git clone https://github.com/mbadolato/iTerm2-Color-Schemes.git
在schemes文件夹中找到 Solarized Dark Higher Contrast.iter ...
Maven依赖管理项目构建工具
一、Maven简介1、为什么学习Maven1.1、Maven是一个依赖管理工具①jar 包的规模
随着我们使用越来越多的框架,或者框架封装程度越来越高,项目中使用的jar包也越来越多。项目中,一个模块里面用到上百个jar包是非常正常的。
比如下面的例子,我们只用到 SpringBoot、SpringCloud 框架中的三个功能:
Nacos 服务注册发现
Web 框架环境
视图模板技术 Thymeleaf
最终却导入了 106 个 jar 包:
org.springframework.security:spring-security-rsa:jar:1.0.9.RELEASE:compilecom.netflix.ribbon: ribbon:jar:2.3.0:compileorg.springframework.boot:spring-boot-starter-thymeleaf:jar:2.3.6.RELEASE:compilecommons-configuration:commons-configuration:jar:1.8:compileorg.apache.logg ...
Flink 基础教程
0 参考资料0.1 学习资料
2022 Flink 学习路线总结
学习经验
0.2 推荐书籍
《Flink大数据分析实战》
Flink入门与实战
Flink基础教程
Flink原理、实战与性能优化
1 初识 Flink1.1 大数据开发总体架构
总体架构图
数据来源层
在大数据领域,数据的来源往往是关系型数据库、日志文件(用户在Web网站和手机App中浏览相关内容时,服务器端会生成大量的日志文件)、其他非结构化数据等。要想对这些大量的数据进行离线或实时分析,需要使用数据传输工具将其导入Hadoop平台或其他大数据集群中。
数据传输层在大数据领域,数据的来源往往是关系型数据库、日志文件(用户在Web网站和手机App中浏览相关内容时,服务器端会生成大量的日志文件)、其他非结构化数据等。要想对这些大量的数据进行离线或实时分析,需要使用数据传输工具将其导入Hadoop平台或其他大数据集群中。
数据存储层数据可以存储于分布式文件系统HDFS中,也可以存储于分布式数据库HBase中,而HBase的底层实际上还是将数据存储于HDFS中。此外,为了满足对大量数据的快速检索与统计,可以使 ...
Git 使用手册
0 参考资料
一文让你了解如何为 Git 设置代理
1 Git 基本使用1.1 配置 Git使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名,每次提交记录里都会包含这些信息。使用git config命令进行配置:
12345678910git config --global user.name “BaihlUp”git config --global user.email “2677443264.com”git config --global credential.helper store #保存登陆信息,以后不用每次都输入密码cat ~/.git-credentials #登陆票证信息git config --global push.default "current" #设置每次默认push的分支为当前分支如果使用ssh则:ssh-keygen -t rsa -C "邮箱"[root@baihl testWaf]# git push origin devUsername for 'https:/ ...
Java--进阶篇
1 注解(Annotation)1.1 注解概述注解(Annotation)是从JDK5.0开始引入,以“@注解名”在代码中存在。例如:
123@Override@Deprecated@SuppressWarnings(value=”unchecked”)
Annotation 可以像修饰符一样被使用,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明。还可以添加一些参数值,这些信息被保存在 Annotation 的 “name=value” 对中。
注解可以在类编译、运行时进行加载,体现不同的功能。
未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,Struts2有一部分也是基于注解的了。注解是一种趋势,一定程度上可以说:框架 = 注解 + 反射 + 设计模式。
1.2 常见的Annotation的作用1.2.1 生成文档相关的注解1234567@author 标明开发该类模块的作者,多个作者之间使用,分割@version 标明该类模块的版本@see 参考转向,也就是相关主题@ ...
Java--基础篇
0 参考资料
JAVA各版本安装包下载路径:https://www.injdk.cn/?spm=a2c6h.12873639.article-detail.22.b53720bdMO7XUf
依赖包网站:https://mvnrepository.com/
1 编程基础1.1 Main方法
class
在Java语言中的一等公民,Java程序就是一个一个的类组成的类由修饰符,类名和类的内容组成类名必须与保存类源文件的文件名相同
main方法
Main方法是Java程序执行的入口方法由方法修饰符,方法名,参数列表和方法体等组成
1.2 基本数据类型
整数类型
byte 占用1个 byte,值域是 -128 ~ 127
short 占用2个 byte,值域是-32768~ 32767
int占用4个 byte,值域是 -2147483648 ~ 2147483647。Java 中整数缺省是 int 类型
long 占用8个 byte,值域是-9223372036854774808 ~ 9223372036854774807
浮点类型
float-有精度,值域复杂 340 ...
基于 Tongsuo(铜锁)实现国密通信
1 Tongsuo(铜锁)的编译12345git clone https://github.com/Tongsuo-Project/Tongsuo.gitcd Tongsuo./config --prefix=/opt/tongsuo enable-ntls no-sharedmake -jsudo make install
2 生成服务端测试证书
生成一个 EC 密钥对(私钥和公钥),使用 SM2 曲线参数,保存私钥为 server_sign.key 文件:
1openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:sm2 -out server_sign.key
使用私钥生成一个证书签名请求(CSR),并将其保存为 server_sign.csr 文件。该请求使用 SM3 散列算法,并且采用给定的主题信息:
1openssl req -config $CONF_DIR/subca.cnf -key server_sign.key -new -out server_sign.csr -sm3 -nodes -subj ...
国密介绍
1 简介铜锁/Tongsuo是一个提供现代密码学算法和安全通信协议的开源基础密码库,为存储、网络、密钥管理、隐私计算等诸多业务场景提供底层的密码学基础能力,实现数据在传输、使用、存储等过程中的私密性、完整性和可认证性,为数据生命周期中的隐私和安全提供保护能力。
铜锁应用场景:
存储加密
网络传输:支持 TLS 、QUIC 、RFC8998、TLCP安全传输协议
密码合规
密钥管理
隐私计算:支持同态加密、零知识证明等算法
铜锁与OpenSSL对比:
2 国密算法介绍国密常见的算法有 SM2 、SM3、SM4、SM9,具体分类如下:
对称加密算法:
SM1算法:对称加密算法,用于替代国际标准的DES算法。
SM4算法:对称分组密码算法,被用于替代国际标准的AES算法。
非对称加密算法:
SM2算法:非对称加密算法,用于数字签名、密钥协商等。
SM9算法:基于椭圆曲线密码体制的身份认证密码学算法。
哈希算法:
SM3算法:密码哈希函数,用于替代MD5、SHA-1等哈希算法。
2.1 SM4 算法2.1.1 简介SM4是对称算法,与国际上的算法 如:AES 对 ...