alpha 的博客

何晓东 的博客 | alpha blog

Nginx 配置进行A\B测试

Nginx 配置进行A\B测试

应用场景:电商活动,准备了A B两套风格的促销页面,想让一半人看到 A 页面,另一半人看到 B 页面,这样来测试两种的转化成交效果。其他在大版本升级测试的时候,防止有bug,可以将小规模流量分发到最新代码的服务器。 前置条件:nginx 需要安装 ngx_http_split_clients_module 模块,借助这个模块的 split_clients 指令完成分流,示例配置如:...

Nginx 日志自定义记录及启用日志缓冲区

Nginx 日志自定义记录及启用日志缓冲区

如果想统计网站的访问来源信息,可以用 php 获取信息,记录到数据库的形式,也可以直接使用 nginx 提供的访问日志,来记录网站的访问详情,管理员可以通过分析 nginx 的访问日志,来分析用户的访问来源,访问行为详情,网站页面访问热度等。此外,nginx 自身也有错误日志,方便运维人员调试 nginx。对于记录日志的行为,如果每次进行磁盘操作,将会较多的耗费资源,基于这个情况可以开...

Nginx 转发 socket 端口配置

Nginx 转发 socket 端口配置

Nginx 转发 socket 端口常见场景:在线学习应用,在常规功能之外,增加一个聊天室功能,后端选择 swoole 提供服务提供者,同时不想前端直接 ip:port 方式链接到服务,需要使用 Nginx 进行转发。 常规情况,我们可以在用户页面,直接建立 socket 链接,但这样的操作会暴露端口,带来一定的安全隐患,使用 Nginx 进行转发,可以隐藏端口。额外的问题就是一些...

Nginx 操作响应头信息

Nginx 操作响应头信息

前置条件:需要编译 ngx_http_headers_module 模块,才支持 header 头信息操作 add_header 意思为将自定义的头信息的添加到响应头,指令为 add_header name value [always];,可以用在 http {}, server {}, location {}, if in location {} 上下文中, 只有当响应状态码等于...

Nginx 静态文件服务配置及优化

Nginx 静态文件服务配置及优化

根目录和索引文件 root 指令指定将用于搜索文件的根目录。 为了获取所请求文件的路径,NGINX 将请求 URI 附加到 root 指令指定的路径。该指令可以放在 http {},server {} 或 location {} 上下文中的任何级别。在下面的示例中,为虚拟服务器定义了 root 指令。 它适用于未包含根指令的所有location {} 块,以显式重新定义根: server {...

Nginx http资源请求限制

Nginx http资源请求限制

前置条件:nginx 需要有 ngx_http_limit_conn_module 和 ngx_http_limit_req_module 模块,可以使用命令 2>&1 nginx -V | tr ' ' '\n'|grep limit 检查有没有相应模块, 如果没有请重新编译安装这两个模块。 测试版本为:nginx版本为1.15+ 限制链接数 使用 lim...

Nginx http运行状况健康检查配置

Nginx http运行状况健康检查配置

翻译自 官方文档 被动检查 对于被动健康检查,NGINX 和 NGINX Plus 会在事件发生时对其进行监控,并尝试恢复失败的连接。如果仍然无法恢复正常,NGINX 开源版和 NGINX Plus 会将服务器标记为不可用,并暂时停止向其发送请求,直到它再次标记为活动状态。 上游服务器标记为不可用的条件是为每个上游服务器定义的,其中包含块中 server 指令的参数 upstre...

Nginx 作为http负载均衡器

Nginx 作为http负载均衡器

翻译自 官方文档,以 Nginx 1.15 版本为准。 介绍 跨多个应用程序实例的负载平衡是一种常用技术,用于优化资源利用率,最大化吞吐量,减少延迟并确保容错配置。 可以使用 nginx 作为非常有效的 HTTP 负载平衡器,将流量分配到多个应用程序服务器,并使用 nginx 提高 Web 应用程序的性能,可伸缩性和可靠性。 负载均衡方法 nginx支持以下负载平衡机制...

Nginx https配置调试过程记录

Nginx https配置调试过程记录

测试环境为:阿里云 centos7.4 ,nginx1.14.3,其他版本的系统或者nginx如有不同,以官网为准。 开始配置 最开始参考阿里云栖社区的这篇 文章,在阿里云控制面板进行配置,然后对应修改 nginx.conf 文件,执行 nginx -s reload 重载使之生效。 nginx.conf https配置 server { listen 443; ...

Nginx 内容缓存及常见参数配置

Nginx 内容缓存及常见参数配置

使用场景:项目的页面需要加载很多数据,也不是经常变化的,不涉及个性化定制,为每次请求去动态生成数据,性能比不上根据请求路由和参数缓存一下结果,使用 Nginx 缓存将大幅度提升请求速度。 基础 只需要配置 proxy_cache_path 和 proxy_cache 就可以开启内容缓存,前者用来设置缓存的路径和配置,后者用来启用缓存。 http { ... prox...