sed
sed(Stream Editor)是一个流编辑器,它以逐行方式处理输入流(通常是文本文件),并根据指定的编辑命令进行相应的操作。 sed 的工作原理 逐行处理输入流: sed 逐行读取输入流,并对每一行应用相应的编辑命令。输入流可以是文件、管道输出等。 模式匹配: sed 使用模式来匹配文本中的特定部分。用户可以使用正则表达式或简单的字符串来定义匹配模式。 编辑命令: sed 使用编辑命令来对匹配到的文本进行操作。编辑命令可以是替换命令、删除命令、插入命令等,以及一些控制流程的命令。 应用编辑命令: 一旦匹配到了指定的文本,sed 就会根据相应的编辑命令执行相应的操作。这些操作可以是替换匹配文本、删除匹配行、插入新文本等。 输出结果: sed 在处理完所有输入流后,将结果输出到标准输出(通常是终端),或者通过 -i 参数直接在原文件上进行修改。 sed空间在 sed 中,有两个特殊的空间:模式空间(pattern space)和保留空间(hold space)。这些空间允许在处理文本时存储和操作数据。 模式空间(pattern space): 模式空间是 sed 中用于存储当前处 ...
nignx反向代理和负载均衡
Nginx 作为反向代理服务器和负载均衡器在网络架构中扮演了重要角色。它能够分发客户端请求到多台后端服务器,从而提高应用的可用性和性能,还可隐藏后端服务器,提高安全性。 可代理到http服务器,或其他协议的服务,如FastCGI、uwsgi、SCGI、memcaced。 使用proxy_pass指令,指定域名或ip地址,还可能包括端口 URI。代理到非http服务,使用相应**_pass指令: 如fastcgi_pass, uwsgi_pass … 1234567location /some/path/ { proxy_pass http://www.example.com/link/; #包含URI}location ~ \.php { proxy_pass http://127.0.0.1:8000;} 12345678910111213server { listen 80; server_name example.com; location / { proxy_pass ...
server/nginx模块配置--http
nginx 的 http 模块主要包括以下几类内容: 基础设置: 全局配置:涉及基本的服务器行为和默认设置。 日志配置:配置访问日志和错误日志的格式和存储位置。 文件处理:配置文件类型、默认 MIME 类型等。 性能优化: 缓存:包括内容缓存、代理缓存等。 压缩:启用 Gzip 等压缩方式以减少传输数据量。 连接管理:配置保持连接、超时等参数。 安全设置: SSL/TLS 配置:配置 HTTPS,指定证书路径和加密协议。 访问控制:限制访问权限,如基于 IP 的访问控制。 请求速率限制:限制请求速率以防止服务器过载和防止DDoS攻击。 限制连接数:限制每个客户端或每个会话的最大连接数,保护服务器资源 代理和负载均衡: 反向代理:将请求转发到后台服务器。 负载均衡:将请求分发到多个后台服务器。 重写和重定向: URL 重写:基于特定规则修改 URL。 重定向:将请求重定向到另一个 URL。 静态和动态内容处理: 静态文件处理:配置如何处理静态文件,如设置缓存时间。 动态内容处理:处理动态内容,如通过 FastCGI、uwsgi、proxy 等将 ...
nginx模块配置--全局和events
1. 全局配置影响服务器的整体行为和性能。这些配置通常放在 Nginx 配置文件的最顶层。在全局配置块中,可以设置用户权限、进程数、日志路径等全局参数。 1234567891011121314# Nginx 运行的用户和用户组。user nginx nginx;# 设置工作进程的数量。通常设置为 CPU 核心数。worker_processes auto;# 设置工作进程可以打开的最大文件描述符数量。worker_rlimit_nofile 1024;# 设置全局错误日志的路径和日志级别。error_log /var/log/nginx/error.log warn;# 设置存储 Nginx 主进程 ID 的文件路径。pid /var/run/nginx.pid; 如果服务器上的文件描述符数量不足以满足并发连接的需求,可能会导致 Nginx 的性能下降或者无法处理更多的连接请求。增大限制可以提高 Nginx 处理并发连接时的能力,特别是在高流量或大负载情况下 操作系统限制:配置 worker_rlimit_nofile 前,确保操作系统本身的文件描述符限制足够大。在 Linux ...
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 user@ssh_server 当需要通过一个中间服务器访问另一个内部服务时 ...
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 内核的开发而设计 1. git基本工作流: 克隆(Clone): 从远程仓库复制项目到本地,创建一个本地仓库的副本。 添加(Add): 将修改后的文件添加到暂存区,准备提交。 提交(Commit): 将暂存区的更改永久保存到本地仓库,并附上一条描述性的提交信息。 推送(Push): 将本地仓库的提交推送到远程仓库,更新远程仓库的内容。 拉取(Pull): 从远程仓库获取最新的更改,与本地仓库同步。 分支管理(Branching): 创建、切换、合并和删除分支,以支持并行开发和功能独立性。 2. Git 的命令行操作以下是一些常用的 Git 命令: git clone <remote_repository_url>:克隆远程仓库到本地。 git add <file_path>:将指定文件添加到暂存区。 git commit -m "commit_message":提交暂存区的更改到 ...
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 会忽略多个空格。可以向脚本添加空格,以增强可读性。 可以折行,代码行太长时 12document.getElementById(& ...