
nginx
文章平均质量分 76
nginx 常用配置
戴国进
往后余生,专注人工智能领域!!!
展开
-
yum 安装的 nginx 添加自定义模块后重新编译安装
编译安装nginx的时候–with-http_perl_module 这个参数,编译时出现如下错误:error: perl module ExtUtils::Embed is required解决办法安装依赖:yum -y install perl-devel perl-ExtUtils-Embed。:下载和当前系统相同版本的nginx,将要添加的模块在编译时添加编译,然后将编译好的nginx可执行文件替换原来/usr/sbin/nginx文件。3. 下载和此版本相同的nginx源码包并解压。原创 2022-09-05 17:34:51 · 1658 阅读 · 0 评论 -
nginx 反向代理oss实现自定义文件名下载 和 解决反向代理文件下载失败
参考:nginx反向代理文件下载失败_kaicen的博客-优快云博客_proxy_max_temp_file_size nginx反向代理下载文件失败处理 资料上传 linode 平台的 OSS ,使用的系统自动生成文件名所以就造成了下载的时候无法自定义文件名,云平台竟然不支持这个,只好反向代理解决。准备工作nginx 要有反向代理的模块 proxy(如上图) 我们来看进程中已经多了cahe 了proxy_cache_path /home/file_cache levels原创 2022-07-14 14:23:06 · 2021 阅读 · 0 评论 -
Nginx 获取自定义请求header头和URL参数
1、自定义请求header (Jquery为例)2、在Nginx中获取请求header在nginx的location配置中,在获取header配置时,须要在header名称前面加上固定前缀“http_“,并将header名称中的“-”中划线变为下划线,举例说明: 自定义的header名称为X-TimerLocal,那在nginx中使用$http_x_timerlocal 来获取到X-TimerLocal的值。if ($http_x_timerlocal = 'B原创 2022-06-23 20:28:36 · 19408 阅读 · 1 评论 -
Nginx 通过 Lua + Redis 实现动态封禁 IP
背景为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。对于黑名单之内的 IP ,拒绝提供服务。架构实现 IP 黑名单的功能有很多途径:1、在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求;2、在 Web Server 层面,通过 Nginx 自身的 deny 选项 或者 lua 插件 配置 IP 黑名单;3、在应用层面,在请求服务之前检查一遍客户端 IP 是否在黑名单。为了方便管理和共享,我们选择通过 Nginx+Lua+Redi原创 2021-11-24 21:03:07 · 2781 阅读 · 0 评论 -
Nginx 配置文件中字符 “/“ 的巨大作用
真实案例,就因为在配置时,少些了一个字符“/”,就造成访问不通报错,因而接到投诉。那么是怎么引起的呢?原因就是:Nginx在配置proxy_pass代理转接时,少些“/”字符造成的。有同学就有疑问,加不加“/”,区别真的那么大吗?我们带着这个疑问,来探究下这个问题。location目录匹配详解nginx每个location都是一个匹配目录,nginx的策略是:访问请求来时,会对访问地址进行解析,从上到下逐个匹配,匹配上就执行对应location大括号中的策略,并根据策略对请求作出相应。依访问地址原创 2021-11-02 16:04:35 · 3011 阅读 · 0 评论 -
基于 Nginx 实现灰度发布与 AB 测试
背景单位的云办公相关系统没有成熟的平滑发布方案,导致每一次发布都是直接发布,dll文件或配置文件的变更会引起站点的重启。云办公系统的常驻用户有10000+,即使短短半分多钟,也会收到一堆投诉。基于此,我们梳理了一套平滑发布的方案。实施方案1、跟nginx代理服务器约定了一个健康检查的接口2、通过接口返回的http状态码来让nginx决定是否分流用户请求(这个我们单位的技术部那边有标准的做法)3、根据提供的这个服务健康检查的接口:nginx判断只要某个实例的接口返回5xx的状态码,..转载 2021-10-20 11:19:22 · 1394 阅读 · 0 评论 -
Nginx 请求 PHP 文件 报 File not found 错误处理
这个错误很常见,主要有下面两种几种1. php-fpm 找不到 SCRIPT_FILENAME 里执行的php文件2.php-fpm 不能访问所执行的 php,也就是权限问题第一种情况可以在你的location php 里面添加当文件不存在时返回404而不是交给php-fpm进行处理location ~ \.php${...#文件不存在转404try_files $uri = 404;...}location ~ \.php$ { root .原创 2021-09-28 21:50:27 · 1017 阅读 · 0 评论 -
Nginx 提示 504 Gateway Time-out(The gateway did not receive a timely response from the...)解决办法
1 2 3 4 $r = new ReflectionClass($this); Zend_Debug::dump($r->getConstants(), "Constants"); Zend_Debug::dump($r->getProperties(), "Properties"); Zend_Debug::dump($r->getMethods(), "Methods");转载 2021-09-03 21:58:06 · 29239 阅读 · 1 评论 -
Nginx: 104: Connection reset by peer 错误
1 错误原因:检查链接是否已经close。 upstream发送了RST,将连接重置。errno = 104错误表明你在对一个对端socket已经关闭的的连接调用write或send方法,在这种情况下,调用write或send方法后,对端socket便会向本端socket发送一个RESET信号,在此之后如果继续执行write或send操作,就会得到errno为104,错误描述为connection reset by peer。如果对方socket已经执行了c...转载 2021-05-10 17:56:09 · 29773 阅读 · 1 评论 -
nginx负载均衡配置,宕机自动切换方式
拓展:https://blog.youkuaiyun.com/u011477914/article/details/84381509 nginx负载均衡,服务器集群配置,服务器挂机自动切换 (这篇文章写得也很不错)严格来说,nginx自带是没有针对负载均衡后端节点的健康检查的,但是可以通过默认自带的ngx_http_proxy_module模块和ngx_http_upstream_module模块中的相关指令来完成当后端节点出现故障时,自动切换到健康节点来提供访问。下面列出这两个模块中相关的指令:语法:..原创 2021-04-19 17:15:17 · 5386 阅读 · 0 评论 -
Nginx“ upstream prematurely closed connection while reading response header from upstream“问题排查
问题背景 我们这边是一个基于Nginx的API网关(以下标记为A),最近两天有调用方反馈,偶尔会出现502错误,我们从Nginx的error日志里看,就会发现有" upstream prematurely closed connection while reading response header from upstream"这么一条错误日志,翻译过来其实就是上游服务过早的关闭了连接,意思很清楚,但是为什么会出现这种情况呢。而且是在业务低峰出现这种情况(也只是小概率的出现),在业务高峰的时候没有出现转载 2021-04-12 17:56:38 · 14594 阅读 · 2 评论 -
设置 Nginx 服务进程数
参考:http://www.04007.cn/article/627.html Nginx配置多核CPU的配置项worker_cpu_affinity使用方法上面这篇文章很值得一看,甚至比本文还要有意义Nginx worker_processes进程数设置Nginx 的配置文档 nginx.conf 中可以设置 worker_processes 来更改 Nginx 的进程数量,根据这篇问答number of nginx worker processes显示,建议 Nginx wo...原创 2021-04-10 20:52:26 · 4215 阅读 · 0 评论 -
nginx 在线学习资料 && nginx.conf 配置文件详解
Nginx是由俄罗斯软件工程师Igor Sysoev开发的一个高性能的HTTP和反向代理服务器,具备IMAP/POP3和SMTP服务器功能。Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。目前,包括新浪、腾讯、阿里等知名网站已经开始使用Nginx作为Web应用服务器。线上不错的学习资料:http://tengine.taobao.org/book/ 《Nginx开发从入门到精通》http://blog.sina.co...原创 2021-04-07 11:46:16 · 1237 阅读 · 0 评论 -
Nginx 日志按日期切割脚本
由于nginx的日志本身只是支持按照server_name或者大小进行划分,对于习惯了apache的按照一个网站每天一个日志的我来说是不可以接受的,所以就实现了按天切割的功能,这篇文章主要介绍了关于Nginx日志按日期切割的相关资料,需要的朋友可以参考下。实现需求本文实现的功能是在吗每天凌晨00:00把前一天的Nginx日志access.log重命名为access-xxxx-xx-xx.log格式,例如:access-2016-10-01.log,下面话不多说了,来看看详细的实现方法吧。实现方法转载 2021-03-17 20:16:48 · 2741 阅读 · 0 评论 -
统计访问Nginx次数最多的前十个IP
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr -k1 | head -n 10awk '{print $1}' :取access日志的第一列sort:对IP部分进行排序。uniq -c:打印每一重复行出现的次数。(并去掉重复行)sort -nr -k1:按照重复行出现的次序倒序排列,-k1以第一列为标准排序。head -n 10:取排在前10位的IP 。...原创 2021-02-19 19:50:48 · 5469 阅读 · 0 评论 -
nginx长连接——keepalive
参考:https://www.cnblogs.com/grimm/p/13038577.html nginx之 tcp_nopush、tcp_nodelay、sendfile 三个参数详解当使用nginx作为反向代理时,为了支持长连接,需要做到两点:从client到nginx的连接是长连接 从nginx到server的连接是长连接1、保持和client的长连接:默认情况下,nginx已经自动开启了对client连接的keep alive支持(同时client发送的HTTP...转载 2021-02-07 09:44:33 · 8487 阅读 · 0 评论 -
nginx upstream 健康检查
使用 nginx_upstream_check_module 模块来对来专门提供负载均衡器内节点的健康检查的,这个模块是淘宝开发的,在tengine中这个模块是默认自带的,这个模块的作用就是用来检测后端realserver是否存活。如果后端 realserver 不可用,则请求就不会转发到该节点上。如果我们没有使用淘宝的 tengine 的话,可以通过补丁的方式来添加该模块到我们自己的 nginx 中。下面是部署流程!1、下载 nginx_upstream_check_module模块wg转载 2021-02-06 17:50:57 · 6044 阅读 · 0 评论 -
Nginx 负载均衡演示之 upstream 参数、 location 参数等示例说明
upstream 参数nginx关于upstream参数官方文档:http://nginx.org/en/docs/http/ngx_http_upstream_module.html 英文 https://www.kancloud.cn/louis1986/nginx-web/527874 中文upstream参数 ...转载 2021-02-06 14:56:55 · 5110 阅读 · 0 评论 -
负载均衡策略
负载均衡器可以是专用设备,也可以是在通用服务器上运行的应用程序。 分散请求到拥有相同内容或提供相同服务的服务器。 专用设备一般只有以太网接口,可以说是多层交换机的一种。 负载均衡器一般会被分配虚拟IP地址,所有来自客户端的请求都是针对虚拟IP地址完成的。负载均衡器通过负载均衡算法将来自客户端的请求转发到服务器的实际IP地址上。负载均衡算法private Map<String,Integer> serverMap = new HashMap<String,Integer&.原创 2020-12-25 15:33:41 · 4192 阅读 · 0 评论 -
一文搞懂Nginx
1.Nginx知识网结构图Nginx是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好nginx专为性能优化而开发,性能是其最重要的要求,十分注重效率,有报告nginx能支持高达50000个并发连接数1.1反向代理正向代理正向代理:局域网中的电脑用户想要直接访问网络是不可行的,只能通过代理服务器来访问,这种代理服务就被称为正向代理。反向代理反向代理:客户端无法感知代理,因为客户端访问网络不需要配置,只要转载 2020-11-24 10:06:51 · 4407 阅读 · 0 评论 -
google Chrome 浏览器升级更新了来源策略,导致不同域名来源页面信息【Referer】只有域名信息
因google Chrome 浏览器升级更新了来源策略,导致不同域名来源页面信息【Referer】只有域名信息,需要设置来源策略【Referrer-Policy】解决 ,目前影响GA跟踪的页面来源分析、影响产品内购率指标。1、来源标头参数介绍HTTP Referer 是什么? 当使用者访问网站时,会发送请求 (request) 给服务器主机,而请求 header 中会有一个标头是「referer」,而此参数会存放当前请求来源的位置,也就是说请求的来源页面。HTTP Referrer-Pol.原创 2020-11-13 09:56:13 · 6371 阅读 · 0 评论 -
nginx 允许跨域请求
添加add_header Access-Control-Allow-Credentials true; (必须要放在server下的server_name下,而不是放在localhost /web的大括号里)原创 2020-07-02 10:08:59 · 19144 阅读 · 1 评论 -
修改PHP和nginx上传文件大小限制
添加 client_max_body_size 10M (必须要放在server下的server_name下,而不是放在localhost /web的大括号里)原创 2020-07-02 09:24:41 · 9209 阅读 · 0 评论 -
NGINX 配置本地HTTPS(免费证书)
Linux系统下生成证书生成秘钥key,运行:$ openssl genrsa -des3 -out server.key 20481会有两次要求输入密码,输入同一个即可输入密码然后你就获得了一个server.key文件.以后使用此文件(通过openssl提供的命令或API)可能经常回要求输入密码,如果想去除输入密码的步骤可以使用以下命令:$ openssl rsa -in server.key -out server.key创建服务器证书的申请文件server.csr,运行:原创 2020-06-07 18:37:53 · 8384 阅读 · 0 评论 -
nginx 的 rewrite 命令详解
作用域:server, location, if这个指令根据表达式来更改URI,或者修改字符串。指令根据配置文件中的顺序来执行。注意重写表达式只对相对路径有效。如果你想配对主机名,你应该使用if语句。rewrite只是会改写路径部分的东东,不会改动用户的输入参数,因此这里的if规则里面,你无需关心用户在浏览器里输入的参数,rewrite后会自动添加的,因此,我们只是加上了一个?号和后面我们想要的一个小小的参数 ***https=1就可以了。Nginx Rewrite规则相关指令Ngin.原创 2020-06-07 18:31:25 · 13073 阅读 · 0 评论