随笔分类 - nginx和apache
介绍nginx和apache的一些原理和应用
摘要:前言 简单介绍一下access log 阶段。 正文 日志模块是 ngx_http_log_module,这个模块无法禁用,内置的。 结 上面是日志的用法。主要的一个内容是日志如果是变量的话,那么需要有一个缓存问题。
阅读全文
摘要:前言 简单介绍一下content 阶段。 正文 下面介绍一下root和alias。 这个前面其实就提交过了,这里再说明一下。 功能都是一样的:将url映射为文件路径,以返回静态文件内容。 差别:root 将完整url映射进文件路径中alias只会将location后的url映射到文件路径中。 访问文
阅读全文
摘要:前言 简单介绍一下precontent阶段。 正文 介绍一下这个阶段的几个模块。 ngx_http_try_files_module 模块。 syntax : tryfiles file... uri tryfiles file... code; default: -- context: serve
阅读全文
摘要:前言 简单介绍一下access 阶段。 正文 限制某些ip地址的访问权限: syntax: allow address| CIDR|unix:|all; defuat: - context: http,server,location,limit_except syntax: deny address
阅读全文
摘要:前言 简单整理一下preaccess。 正文 主要是介绍一下上文提及到的limit_req以及limit_conn。 里面是http_limit_conn_module 默认编译进去。 生效范围: 全部的workder 进程 进入preaccess 阶段前不生效 限制的有效性取决于key的设计: 依
阅读全文
摘要:前言 简单介绍一下find_config 与 preaccess 阶段。 正文 find_config 很大一部分工作是进行location的匹配。 来一张图看下location指令和merge_slashes: 前缀字符串: 常规 比如/http,表示前缀是http,比如 http/aaa 这种。
阅读全文
摘要:前言 已经到了关键的http请求的11个阶段了。 正文 概念图: 11 个阶段的处理顺序: 那么就来介绍一下: 先来了解一下postread阶段的realip这个处理,realip 是 real ip,就是获取到连接的真实地址。 如何拿到真实的用户ip地址? tcp 连接四元组 这个不可靠,因为网络
阅读全文
摘要:前言 简单介绍一下http的一些指令。 正文 一般http的嵌套规则是这样的: http{ upstream{} split_clients {} map{} gep{} server{ if(){} localtion{ limit_except{....} } location{ locatio
阅读全文
摘要:前言 简单介绍一下nginx的模块。 正文 https://nginx.org/en/docs/ 这里面可以看到官方模块。 比如打开这个模块: https://nginx.org/en/docs/http/ngx_http_gzip_module.html 文档分为几个部分: 例子部分: 指令(每个
阅读全文
摘要:前言 简单介绍一下nginx的网络模型。 正文 网络拓扑图: 数据流: 网络传输大概是这样传输的。 nginx 事件循环: 事件处理过程: 上面两张图什么意思呢? 其实就是说,nginx 是通过事件驱动的,比如说操作系统将accept 队列中取出给nginx,nginx 取出后进行相应的处理,然后产
阅读全文
摘要:前言 简单介绍一下nginx的设计模型,对我们设计程序还是有一定帮助的。 正文 这里先列一下模型哈,后面有深入篇,介绍的比较清楚。 nginx 的处理模型: nginx 进程模型: 可以看到下面列出了进程: 这里的worker 进程只有一个哈。 同样可以看到他们的关系,父进程是master proc
阅读全文
摘要:前言 简单介绍一些https。 正文 pki 公钥基础设施: 证书链: tls 通讯过程 验证身份 达成安全套件共识 传递秘钥 加密通讯 sudo yum install epel-release sudo yum install certbot sudo yum install python2-c
阅读全文
摘要:前言 简单介绍一下nginx的静态服务。 正文 一般静态服务一般是alias 和 root。 就是上面这个哈。 那么root和alias 的区别是啥呢? 比如root: 然后修改一下就是: 如果这样配那么就会404了。 我们的意思是/static 然后映射到这个目录下,这样是不行的。它的意思是去/h
阅读全文
摘要:前言 简单介绍一下goaccess。 正文 安装: yum install epel-release yum install GeoIP GeoIP-devel GeoIP-data yum install libncursesw5-dev ncurses-libs ncurses-devel 然后
阅读全文
摘要:前言 简单整理一下反向代理。 正文 为什么要反向代理呢? 其实这个问题也是相对来说比较好理解的。 一个就是解耦,为什么这么说呢,就是将原本应用的一部分剥离出来,比如说限制流量,如果在程序中写那么相比会增加程序的复杂度。 水平扩展,这个没什么好说的吧,有了水平扩展那么整体性能就得到了一个大的提高。 那
阅读全文
摘要:前言 简单演示热部署和日志切割。 正文 什么是热部署了,我们前文也说过了一个编译后的nginx 二进制。 热部署就是无需停止现有的nginx,替换正在运行的nginx。 步骤: 复制nginx 二进制替换掉原先的nginx文件。 kill -USR2 13195 给nginx 发送信号 这里出现了另
阅读全文
摘要:前言 简单编译一下nginx。 正文 为什么我们要去编译nginx。 系统安装,比如yum安装,会把nginx 模块直接编译进来。 这意味着,我们无法使用第三方的包。如果我们需要使用第三方包,那么需要编译出来。 第一步需要下载出nginx 包: wget https://nginx.org/down
阅读全文
摘要:前言 因为整理http协议,顺便把nginx 整理了。 正文 主要作用: 正向代理 反向代理(负载均衡、缓存等) 静态资源 nginx 的优点: 适合高并发,一个进程可以处理很多的请求。 扩展性强,有很多组件 高可用,比较稳定吧 开源,社区比较好 热部署,就是说不需要我们重启nginx就可以切换我们
阅读全文
摘要:前言 下面是配置nginx websocket 的代码。 # HTTPS server map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream websocket { server localhost
阅读全文
摘要:前言 概念,我已经在nginx基本理解中写了,如有需要了解的,请到地址下查看。 正文 我在根目录下创建了一个data文件。一般来说代理服务器一般和普通资源文件(静态)在一起的。 我用ftp给你们展示一下data目录: www下有个a.html image 下面有个 index.jpg 配置: 效果:
阅读全文
浙公网安备 33010602011771号