![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
nginx
一路奔跑94
业精于勤荒于嬉,行成于思毁于随!
展开
-
OpenResty实现限流的几种方式
在开发api网关的时,做过一些简单的限流,比如说静态拦截和动态拦截;静态拦截说白了就是限流某一个接口在一定时间窗口的请求数。用户可以在系统上给他们的接口配置一个每秒最大调用量,如果超过这个限制,则拒绝服务此接口,而动态拦截其实也是基于静态拦截进行改进,我们可以依据当前系统的响应时间来动态调整限流的阈值,如果响应较快则可以把阈值调的大一些,放过更多请求,反之则自动降低限流阈值,只使少量请求通过。其实这就是一个很简单的限流方式。但是因为这些场景在我们开发的时候经常遇到,所以在这里用OpenResty...转载 2020-06-05 14:29:38 · 917 阅读 · 0 评论 -
nginx 响应头中添加HSTS
从 HTTP 到 HTTPS 再到 HSTS近些年,随着域名劫持、信息泄漏等网络安全事件的频繁发生,网站安全也变得越来越重要,也促成了网络传输协议从 HTTP 到 HTTPS 再到 HSTS 的转变。HTTPHTTP(超文本传输协议) 是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP 是互联网数据通信的基础。它是由万维网协会(W3C)和互联网工程任务组(IETF)进行协调制定了 HTTP 的标准,最终发布了一系列的 RFC,并且在1999年6月公布的 RFC 2616,定义了 HT转载 2020-05-12 18:04:13 · 1893 阅读 · 0 评论 -
GoAccess构建实时日志分析系统
一、GoAccess基本概述GoAccess 是一款用于Apache或者Nginx的命令行日志分析器和交互式查看器。使用这款工具,你不仅可以浏览到之前提及的相关数据,还可以通过分析网站服务器日志来进一步挖掘数据。这一切都是在一个终端窗口实时输出并且可以输出在web端可视化的显示信息。二、GoAccess主要功能统计概况,流量消耗等 访客排名 动态Web请求 静态web请求,如图片...原创 2020-03-28 22:35:42 · 352 阅读 · 0 评论 -
Nginx 配置静态文件404问题
使用Nginx做图片服务器时候,配置之后图片访问一直是 404.我的配置是location /api/v1/upload { root /opt/edu/upload;}文件放在/opt/edu/upload 目录下。访问http://localhost/api/v1/upload/api/v1/upload/course/logo/44242acc58f246...转载 2019-05-14 17:15:30 · 1358 阅读 · 0 评论 -
Nginx的stub_status模块的作用及配置文件修改
nginx中的stub_status模块主要用于查看Nginx的一些状态信息.本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定:复制代码 代码如下:./configure –with-http_stub_status_module一、查看已安装的 Nginx 是否包含 stub_status 模块复制代码 代码如下:#/usr/loca...转载 2019-05-13 09:56:16 · 6868 阅读 · 0 评论 -
ngx_http_auth_basic_module模块
nginx用户认证配置( Basic HTTP authentication)ngx_http_auth_basic_module模块实现让访问着,只有输入正确的用户密码才允许访问web内容。web上的一些内容不想被其他人知道,但是又想让部分人看到。nginx的http auth模块以及Apache http auth都是很好的解决方案。默认情况下nginx已经安装了ngx_http_au...转载 2019-05-13 17:10:02 · 1158 阅读 · 2 评论 -
ngx_upstream相关结构
ngx_http_upstream_t数据结构的意义typedef struct ngx_http_upstream_s ngx_http_upstream_t;struct ngx_http_upstream_s { // 处理读事件的回调函数 ngx_http_upstream_handler_pt read_event_handler; // 处...原创 2019-06-05 12:41:00 · 271 阅读 · 0 评论 -
Nginx tcp 反向代理配置安装
Nginx升级支持stream模块使用Nginx做tcp的反向代理,目前1.7至1.9版本需要加载[nginx_tcp_proxy_module]模块,1.9之后可以使用[--with-stream]模块。因为安装的时候使用的是LNMP(https://lnmp.org/),就采用了直接升级nginx的方法。目录: lnmp1.5/include/upgrade_nginx.sh注意...原创 2019-06-14 18:45:53 · 3815 阅读 · 0 评论 -
ngx_http_request_t结构体
ngx_http_request_s是nginx中非常重要的一个结构体,贯穿于htpp请求处理的整个过程中。下面解释了ngx_http_request_s结构体中与HTTP框架相关的重要的成员变量。struct ngx_http_request_s { uint32_t signature; /* "HTTP"...原创 2019-06-04 09:48:30 · 487 阅读 · 0 评论 -
ngx_connection_t结构体
ngx_connection_t结构体//服务器的被动连接 struct ngx_connection_s { //连接未使用时候,data域充当连接链表中的next指针. //当连接被使用时候,data域的意义由模块而定. void *data; //连接对应的读事件 ngx_event_t *read; //连接...原创 2019-06-04 09:49:44 · 409 阅读 · 0 评论 -
nginx数据结构之ngx_listening_s
src/core/ngx_connection.htypedef struct ngx_listening_s ngx_listening_t; struct ngx_listening_s { ngx_socket_t fd; //文件描述符 struct sockaddr *sockaddr; /...原创 2019-06-04 09:58:43 · 350 阅读 · 0 评论 -
记一次nginx反向代理导致的加载数据失败
一、背景 简述一下背景,涉及商业信息不方便透露,不过可以大概描述一下要做的事儿,主题呢就是用nginx去做反向代理,这个相信大部分的小伙伴都会配置很简单就是加一个proxy_pass https://XX.XX.XX:XX; 很简单嘛,这会有什么问题,不信失败,那咱代理百度试试呗,location / { proxy_pass https://www.baidu.com ...原创 2019-09-06 13:17:53 · 1967 阅读 · 0 评论 -
Nginx源码剖析之内存池,与内存管理
引言 Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类...转载 2019-09-10 11:26:19 · 255 阅读 · 0 评论 -
Nginx支持WebSocket反向代理-学习小结
WebSocket是目前比较成熟的技术了,WebSocket协议为创建客户端和服务器端需要实时双向通讯的webapp提供了一个选择。其为HTML5的一部分,WebSocket相较于原来开发这类app的方法来说,其能使开发更加地简单。大部分现在的浏览器都支持WebSocket,比如Firefox,IE,Chrome,Safari,Opera,并且越来越多的服务器框架现在也同样支持WebSocket。...转载 2019-09-29 15:26:37 · 230 阅读 · 0 评论 -
Nginx-编写自己的http模块(引入第三方模块的方法)
Nginx将第三方模块编译到nginx中的方法:将源代码文件和config放在一个目录中,然后执行configure --add-module=PATH (以上文件的地址) ,就可以在执行正常编译安装流程时完成nginx编译工作;通过编写配置mytest模块,可以在http{},server{},location{}块中声明配置mytest,如location /mytest/ {...转载 2019-04-02 17:11:06 · 1109 阅读 · 0 评论 -
nginx之proxy_pass代理后端https请求完全拆解
前言本文解释了怎么对nginx和后端服务器组或代理服务器进行加密http通信。内容提纲前提条件 获取SSL服务端证书 获取SSL客户端证书 配置nginx 配置后端服务器 完整示例前提条件nginx源码或nginx plus源码 一个代理服务器或一个代理服务器组 SSL证书和私钥获取SSL服务端证书你可以从一个可信证书颁发机构(CA)购买一个服务器证书, 或者...转载 2019-03-28 14:22:06 · 10956 阅读 · 0 评论 -
nginx的location配置详解
语法规则: location [=|~|~*|^~] /uri/ { … }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。~ 开头表示区分大小写的正则匹配~* 开头表示不区分大小写的正则匹配!~和!~*分别为区分大小写不匹配...转载 2018-04-25 17:54:20 · 268 阅读 · 0 评论 -
nginx fastcgi php
一、用户对动态PHP网页访问过程用户浏览器发起对网页的访问:http://192.168.1.103/index.php用户和nginx服务器进行三次握手进行TCP连接(忽略包括nginx访问控制策略、nginx防火墙等访问控制策略)第一步:用户将http请求发送给nginx服务器第二步:nginx会根据用户访问的URI和后缀对请求进行判断1.例如用户访问的index.php,nginx则会根据配...转载 2018-04-26 11:21:12 · 266 阅读 · 0 评论 -
nginx强制使用https访问(http跳转到https)
原文:http://blog.csdn.net/wzy_1988/article/details/8549290 需求简介基于nginx搭建了一个https访问的虚拟主机,监听的域名是test.com,但是很多用户不清楚https和http的区别,会很容易敲成http://test.com,这时会报出404错误,所以我需要做基于test.com域名的http向https的强制跳转我总结了三种方式,...转载 2018-06-22 14:41:27 · 896 阅读 · 0 评论 -
fastcgi与cgi有什么不同
前言现在的CGI基本没人使用,不安全以及性能极其低下,越来越多的使用web内置扩展、fastCGI。例如微软iis的ISAPI,apache的php模块,nginx的php-cgi。CGI、内置模块、fastcgi这三种性能最好的要属于fast_cgi速度最快,但是需要额外的进程。解析来看看CGI和FASTCGI有什么不同.CGI方式介绍:cgi在2000年或更早的时候用得比较多,以前web服...转载 2018-07-30 11:11:54 · 2041 阅读 · 0 评论 -
文章17 ngx_http_request_t结构体详解
欢迎转载,转载请注明http://blog.csdn.net/yankai0219/article/details/8220621 由于本人能力有限,对于这些结构体的成员变量的解释,肯定有所差池,还请大家指出,大家共同学习 主要内容: 0.序 一、ngx_http_request_t结构体解释 二、ngx_http_request_body_t结构体 ...转载 2018-09-30 16:56:04 · 653 阅读 · 0 评论 -
nginx子请求数量过多导致的内存泄漏
最近线上的全部lua接口响应时间突然增长了好几倍,甚至达到不可用的状态,看了一下监控,发现全部openresty服务器的内存占用率都在快速的往上涨: 我们试着重启nginx,虽然内存占用率恢复到正常水平,但马上又会继续快速往上涨,重启了好几次都是同样的情况,所以基本上可以确定是发生了内存泄漏。接着查看接口日志,发现了下面两个报错: failed to issue subrequest:...转载 2018-10-23 11:48:10 · 1170 阅读 · 0 评论 -
nginx+php-fpm模式php内存泄漏探究
之前遇到过一次服务器内存告警,查看后发现有个php-fpm进程占用了2G的内存。但我明明在php.ini文件里面,有配置 memory_limit = 256M,那为什么会有占用2G内存的php-fpm进程呢?这里先简单说一下nginx+php-fpm模式的工作原理。 nginx服务器fork出n个子进程(worker),php-fpm管理器fork出n个子进程。当有用户请求,ngin...转载 2018-10-23 11:49:27 · 610 阅读 · 0 评论 -
nginx 如何配置来获取用户真实IP
##1.背景知识1.1. 前提知识点:还有nginx中的几个变量:remote_addr 代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站时,假设中间没有任何代理,那么网站的web服务器(Nginx,Apache等)就会把remote_addr设为你的机器IP,如果你用了某个代理,那么你的浏览器会先访问这个代理,然后再由这个代理...转载 2019-01-14 17:43:49 · 992 阅读 · 0 评论 -
Nginx获取真实用户IP
多级代理下Nginx获取真实用户IP地址的总结 声明:本文参考http://www.ttlsa.com/nginx/nginx-get-user-real-ip/并做了一些补充讲解,希望会更加清晰明了~ 随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之...转载 2019-01-14 21:12:50 · 7694 阅读 · 0 评论 -
学习笔记 - Nginx在多层代理下获取真实客户端IP地址
最近在研究nginx中如何获取真实客户端IP的方法。众所周知,在编译Nginx时,可通过添加http_realip_module模块来获取真实客户端IP地址。何为真实IP地址呢?请看下图,既获取到的真实客户端IP是101,既不是正向代理服的104,也不是反向代理的105。 我们以PHP为例来说明整个过程吧。前期准备:在/home/apps/realip.com/下新建index...转载 2019-01-14 23:21:04 · 845 阅读 · 0 评论 -
all warnings being treated as errors,,error: format ‘%u’ expects argument of type ‘unsigned int’
在centos7 系统编译tengine 时报错:src/http/ngx_http_upstream_check_module.c:1489:2: error: format ‘%u’ expects argument of type ‘unsigned int’, but argument 3 has type ‘ngx_uint_t’ [-Werror=format=] count,...原创 2019-03-14 14:51:29 · 3680 阅读 · 0 评论 -
Nginx 在 Windows 平台上编译
在Windows平台上编译Nginx遇到一些问题, 最终都逐个解决了, 记录一下过程.打开网址http://nginx.org/en/download.html其中 nginx/Windows-1.10.1 是直接下载编译好的Windows版本的二进制程序而要下载源码需要使用 Mercurial 去 clone, 源代码地址是http://hg.nginx.org/nginx...转载 2019-03-20 16:57:51 · 672 阅读 · 0 评论 -
nginx做代理https遇到SSL_do_handshake()握手失败
这个问题真的时,困扰我一段时间了,反向代理时,设置了proxy_ssl_protocols XXXX;#proxy_ssl_ciphers ECC-SM4-SM3;proxy_ssl_session_reuse off;一开始的时候由于看到了这个:proxy_ssl_session_reuse指令配置,当下一次nginx转发一个连接到后端服务器时,会话参数会被重复使用,从而更...原创 2019-03-29 15:30:39 · 15183 阅读 · 1 评论 -
Nginx之proxy_redirect详解
proxy_redirect语法:proxy_redirect [ default|off|redirect replacement ] 默认值:proxy_redirect default 使用字段:http, server, location 如果需要修改从被代理服务器传来的应答头中的"Location"和"Refresh"字段,可以用这个指令设置。假设被代理服务器返回Location字段为:...转载 2018-04-23 14:57:26 · 2205 阅读 · 0 评论