nginx配置结构
Nginx 采用高度模块化的架构,核心功能由核心模块提供,而其他功能则通过各种模块实现。Nginx 的架构可以分为以下几个部分: Master 进程: 主进程负责管理子进程的启动、停止和重新加载配置等工作。 Worker 进程: Worker 进程处理客户端的请求。每个 Worker 进程通常只处理一个客户端连接,这样可以提高并发性能。 事件模块: Nginx 使用事件驱动模型处理网络事件,例如接受新连接、读取数据、发送数据等。事件模块可以基于 select、poll、epoll、kqueue 等机制实现。 HTTP 核心模块: 提供 HTTP 协议的基本功能,例如请求解析、响应生成、重定向、缓存等。 HTTP 动态模块: 提供动态内容的支持,例如 FastCGI、uWSGI、SCGI 等协议的代理和转发。 反向代理模块: 提供反向代理功能,可以将请求转发给后端服务器。 负载均衡模块: 提供负载均衡功能,可以根据不同的算法将请求分发给多个后端服务器。 配置文件结构Nginx 配置文件一般包含全局配置和特定块的配置。全局配置位于 http 块之外,用于配置全局的 Nginx...
ssh转发
SSH转发(SSH forwarding)是一种通过SSH连接安全地传输网络流量的技术,常用于许多情况下,比如远程访问内部服务、加密流量传输等。 SSH转发包括三种主要类型: 本地端口转发(Local Port Forwarding): 将本地主机的某个端口转发到远程服务器的一个指定主机和端口上。 常用命令:ssh -L local_port:remote_host:remote_port user@ssh_server 远程端口转发(Remote Port Forwarding): 将远程服务器的某个端口转发到本地主机的一个指定主机和端口上。 常用命令:ssh -R remote_port:local_host:local_port user@ssh_server 动态端口转发(Dynamic Port Forwarding): 创建一个动态 SOCKS 代理,使得所有发送到本地端口的流量都经过SSH连接,并通过远程服务器转发。 常用命令:ssh -D local_socks_port...
ssh转发
SSH (Secure Shell) 是一种用于在不安全网络上安全访问和管理远程服务器的协议。SSH 提供加密通信,确保数据传输的保密性和完整性。 使用用户名和主机名(或 IP 地址)连接到远程服务器: 12345678910ssh username@hostnamessh -p port username@hostname# 生成密钥对ssh-keygen -t rsa -b 4096 -C "your_email@example.com"ssh-keygen -t ecdsa -b 521 -C "your_email@example.com"# 添加公钥到远程ssh-copy-id username@hostname# 手动添加公钥到远程服务器:将 ~/.ssh/id_rsa.pub 的内容添加到远程服务器上的 ~/.ssh/authorized_keys 文件中。 SSH-Agent 和 SSH-Add 多次连接同一服务器:如果需要在一段时间内多次连接到同一服务器,使用 ssh-agent 和 ssh-add...
git
git 一个分布式版本控制系统,由Linus Torvalds(芬兰计算机科学家,linux之父呀)在2005创建,最初是为了帮助管理 Linux 内核的开发而设计 使用git可以协作并行工作,版本控制,可以创建分支轻松合并更改,代码保存在多个地方,防止数据丢失。 Git的核心概念 仓库 (Repository): 你的项目代码库,包含所有文件和历史记录。 本地仓库: 在你电脑上的仓库。 远程仓库: 在线托管的仓库,例如GitHub、GitLab、Gitee。 工作区 (Working Directory): 你在电脑上看到和编辑的实际文件。 暂存区 (Staging Area / Index): 一个临时区域,用于存放你准备提交(commit)的更改。你可以选择性地将文件添加到暂存区。 提交 (Commit): 将暂存区的更改永久保存到本地仓库中,并生成一个唯一的**提交ID (Commit ID)**。每次提交都像是一个项目状态的“快照”。 分支 (Branch):...
Linux中的特殊权限和文件属性
Linux 中的特殊权限和文件属性管理,包括传统的特殊权限位、ACL (Access Control Lists) 以及更底层的文件属性(chattr 和 lsattr)。这些功能提供了比基本 ugo/rwx 权限更细粒度的文件访问控制。 1. 特殊权限位 (SUID, SGID, Sticky Bit)除了我们熟知的用户 (User)、组 (Group) 和其他 (Others) 的读 (Read)、写 (Write)、执行 (Execute) 权限 (rwx),Linux 文件系统还提供三种特殊的权限位,它们有独特的作用: 1.1 SUID (Set User ID) 符号表示: s 位于所有者执行位 (u+x) 的位置。 数字表示: 八进制权限的最高位,例如 4755。 作用: 当一个可执行文件设置了 SUID 位后,任何用户执行该文件时,其进程的有效用户 ID 会暂时变为该文件的所有者 ID。 典型应用: passwd 命令:该命令通常属于 root 用户,并设置了 SUID 位。普通用户执行 passwd 时,进程会暂时拥有 root 权限,从而能够修改...
linux重学
一 、学习阶段在学习 CentOS Linux 或任何其他 Linux 发行版时,可以将学习划分为以下几个阶段,这些阶段按照逐渐增加的复杂性和深度,帮助你建立坚实的 Linux 技能: 入门阶段: 熟悉基本的 Linux 概念和术语,如文件系统、进程、权限等。 学习基本的命令行操作,如文件和目录操作、文件查看、编辑、权限设置等。 掌握基本的系统操作,如登录、关机、重启等。 系统管理阶段: 学习用户管理,包括添加、删除、修改用户账户,以及用户组管理。 掌握文件系统管理,包括文件和目录权限、文件系统挂载、磁盘管理等。 熟悉软件包管理,使用包管理工具(如 yum 或 dnf)安装、更新、删除软件包。 网络管理阶段: 学习网络配置,包括设置静态 IP 地址、配置网络接口、管理网络服务等。 掌握防火墙配置和管理,如使用 firewalld 管理防火墙规则。 理解网络诊断工具的使用,如 ping、traceroute、netstat 等。 安全性管理阶段: 学习身份验证和授权,如密码管理、sudo...
bash shell
第一部分:基础1. Bash 简介1.1 Shell 是什么Shell 是计算机操作系统中的一种用户界面,它为用户提供了与操作系统内核进行交互的方式。通过 Shell,用户可以执行命令、运行程序、管理文件系统等。Shell 是一个解释性的编程语言,它接受用户输入的命令,并将其转换为操作系统可以理解的指令。 1.2 为什么使用 Shell? 命令行的强大性: Shell 提供了强大的命令行接口,使得用户可以通过简短的命令完成复杂的任务。 脚本编程: 使用 Shell 脚本,用户可以编写一系列的命令,形成可重复执行的脚本,实现自动化和批量处理。 系统管理: 系统管理员和开发人员常常使用 Shell 来管理和配置操作系统,执行系统维护任务。 灵活性和定制性: Shell 具有高度的灵活性,用户可以根据需要定制环境,创建别名,以及编写自定义函数。 1.3 Bash 是什么 Bourne Shell: Bash(Bourne Again SHell)是 Bourne Shell 的一个扩展。Bourne Shell 是由 Stephen Bourne 开发的原始 Unix...
openssl
加密 签名和SSL握手机制细节 对称加密:加密解密使用同一密钥,加解密速度快。 非对称加密:使用公钥配对加解密,速度慢。公钥从私钥中提取出来,一般拿对方公钥加密来保证数据安全性,拿自己的私钥加密来证明数据来源的身份。 单向加密 :不算是加密,也常称为散列运算,用于生成独一无二的校验码(或称指纹、特征码)来保证数据的完整性和一致性,如MD5、SHA。具有雪崩效应,任何一点数据的改变,生成的校验码值变化很大。 互联网数据安全可靠的条件: 数据来源可信,即数据发送者身份可信。 数据具备完整性,即数据未被修改过。 数据安全性,即数据不会被泄露,他们截获后无法解密。 对数据加密的方法有三种:对称加密、私钥加密和公钥加密。三种方法只靠其中一种都有不可容忍的缺点,因此考虑将它们结合使用。 ….. Openssl命令格式:openssl command [ comand_opts] [ comand_args ] Standard commandsasn1parse ca ciphers cmscrl ...
jquery
1234567891011//dom页面加载完毕再执行js1.$(document).ready( function(){ })2. $(function(){ }) jQuery 对象是 dom 对象的数组 + jQuery 提供的一系列功能函数。 $是jQuery的别称,都是顶级对象 DOM 转 jQuery$(DOM对象); 得到jQuery对象 jQuery 转 DOMjQuery对象[下标];得到DOM对象 或 jQuery对象.get(下标); 选择器基本#id根据id匹配一个元素,元字符作为名称部分时,要用”\“转义 1234<div id="a">选我</div><div id="a:b">选我</div>$(#a) //选中id为a的$(#a\\:b) element根据标签名匹配所有元素 $(“div”) //选中所有div标签 .class匹配类元素 $(.classname)...
JavaScript
javascript使用 <script>标签JavaScript 代码必须位于 <script> 与 </script> 标签之间能够在 HTML 文档中放置任意数量的脚本。脚本可被放置与 HTML 页面的 <body> 或 <head> 部分中,或兼而有之。 也可放置在扩展名为.js的外部文件中:通过<script src="/path/file.js"></script>的方式引入 javascript输出javascript不提供任何内建的打印或显示函数。要通过以下方式”显示”数据: 使用 window.alert() 写入警告框 使用 document.write() 写入 HTML 输出 使用 innerHTML 写入 HTML 元素 使用 console.log() 写入浏览器控制台 分号;分号每句结束符。JavaScript...