nginx
文章平均质量分 70
yshir-phper
这个作者很懒,什么都没留下…
展开
-
使用Supervisor守护进程
Supervisor是一个客户端/服务器系统,允许其用户监视和控制类似UNIX的操作系统上的多个进程。Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。原创 2022-09-23 12:01:15 · 3482 阅读 · 0 评论 -
nginx配置详解
nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器。同时也是一个IMAP、POP3、SMTP代理服务器,Nginx作为一个HTTP服务器进行网络的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。二、Nginx相关地址及。转载 2022-09-22 15:40:14 · 18103 阅读 · 0 评论 -
phpStudy下nginx环境访问url去掉index.php
修改配置文件vhosts.conf:在location / { } 中添加这段代码:location / { index index.html index.htm index.php; #autoindex on; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; }}...原创 2021-03-09 20:32:47 · 286 阅读 · 0 评论 -
nginx如何配置负载均衡
面试回答如下:在nginx里面配置一个upstream,然后把相关的服务器ip都配置进去。然后采用轮询的方案,然后在nginx里面的配置项里,proxy-pass指向这个upstream,这样就能实现负载均衡。nginx的负载均衡有4种模式:1)、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。2)、weight指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。2)、ip_hash每个请求按访问ip的hash结.转载 2020-11-23 11:44:05 · 237 阅读 · 0 评论 -
Nginx配置文件详解及其负载均衡
序言 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,也是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。国内使用Nginx的网站有如下公司:新浪、网易、腾讯、CSDN、酷六、小米等 优点如下:1.高并发连接: 官方测试能够支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数。2.内存消耗少: 在3万并发连接下,开启的10个Nginx 进程才消耗15转载 2020-11-23 11:38:57 · 614 阅读 · 0 评论 -
Nginx系列教程(15) - 动静分离概念
1. 动态页面与静态页面区别静态资源: 当用户多次访问这个资源,资源的源代码永远不会改变的资源。动态资源:当用户多次访问这个资源,资源的源代码可能会发送改变。2. 什么是动静分离动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。动静分离简单的概括是:动态文件与静态文件的分离。3. 为什么要用动静分离?在我们的软件开发中,有些请求是需要后台处理的(如:.js转载 2020-11-15 10:39:46 · 305 阅读 · 0 评论 -
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
阅读本文前,先看看Nginx的主从热备原理图:1. 基础概念1.1 LVSLVS是一个开源的软件,可以实现传输层四层负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR); 八种调度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh);1.2 Lvs与Nginx区别LVS的负载能力强,因为其工作方式逻辑非常简单,仅进行请求分发,而且工作在网络的第4层,没有流量.转载 2020-11-16 11:50:56 · 344 阅读 · 0 评论 -
Nginx系列教程(10) - 如何把项目部署到外网?
一般我们的开发环境都是在内网部署,但是到了真正的生产环境的时候,我们会有很多疑问?比如:如何把我们的项目部署到外网? 阿里云服务器是什么? 为什么这么多企业使用阿里云服务器? …带着疑问,我们来探讨解决这些问题吧????1.如何部署项目到外网?首先,如果一个项目要部署到外网,那么必须把项目部署到一台放置外网的服务器。也就是其它外部的电脑(非局域网)可以通过域名或者ip去访问(一般不用ip,容易受到攻击,如果要用,可以参考外网ip直接访问),那么怎么把服务器放置外网呢?一般有两种方式:转载 2020-11-16 11:51:22 · 1601 阅读 · 0 评论 -
Nginx系列教程(13) - TCP反向代理实现
Nginx在1.9.0的时候,增加了一个 stream 模块,用来实现四层协议(网络层和传输层)的转发、代理、负载均衡等。stream模块的用法跟http的用法类似,允许我们配置一组TCP或者UDP等协议的监听,然后通过proxy_pass来转发我们的请求,通过upstream添加多个后端服务,实现负载均衡,下面我们从基础网络模型讲起:1.网络模型在前面的章节中,我们知道,网络的七层协议是这样的,详细的内容可以参考文章:《网络七层协议,四层协议,五层协议?》:OSI中的层 功能 T转载 2020-11-16 11:51:34 · 1047 阅读 · 0 评论 -
Nginx系列教程(12) - HTTP动态负载均衡(二)
在上一章《Nginx系列教程(11) - HTTP动态负载均衡(一)》我们了解到了负载均衡按静态和动态分为三种:Consul+Consul-template每次发现配置更改需要raload nginx,重启Nginx。 Consul+OpenResty实现无需raload动态负载均衡 Consul+upsync+Nginx实现无需raload动态负载均衡并介绍了常用的服务注册于发现框架,并以Consul做了简单的安装与使用介绍。动态负载均衡示意图如下:本文我们主要来讲解三方应用ngi...转载 2020-11-16 11:51:07 · 113 阅读 · 0 评论 -
Nginx系列教程(11) - HTTP动态负载均衡(一)
引言传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件,因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upstream可配置化、动态化,无需人工重新加载nginx.conf,类似分布式的配置中心。Consul+Consul-template每次发现配置更改需要raload nginx,重启Nginx。 Consul+OpenResty实现无需raload动态负载均衡 Consul+upsync+Nginx实现无需raload动态负载均衡1...转载 2020-11-16 11:50:43 · 134 阅读 · 1 评论 -
Nginx系列教程(09) - rewrite
1.rewrite介绍Nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。关于rewrite:rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用。 rewrite主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pcre,perl兼容正则表达式的语法规则匹配,如果需要Nginx的Rewrite功能,在编译Nginx之前,需要编译安装PCRE库。 通过Rewrite规转载 2020-11-14 20:54:58 · 153 阅读 · 0 评论 -
Nginx系列教程(08) - Upstream Server 负载均衡
1.Upstream Server简介Upstream Server中文翻译上游服务器,意思就是负载均衡服务器设置,白话文表示(就是被nginx代理最后真实访问的服务器)。负载均衡算法:配置多个上游服务器(真实业务逻辑访问的服务器)的负载均衡机制。 失败重试机制:当上游服务器出现超时或者服务器不存活,是否考虑重试机制(补偿机制)。 服务器心跳检测: 上游服务器监控检测、心跳检测。Nginx负载均衡提供上游服务器、负载均衡、故障转移、失败重试、容错、健康检查等。当上游服务器发生故障时,可.转载 2020-11-14 20:33:13 · 1426 阅读 · 0 评论 -
Nginx系列教程(07) - Location正则表达式
1. Location的作用Location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。2.Location的语法以=开头表示精确匹配,如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。 ^~开头表示uri以某个常规字符串开头,不是正则匹配 ~开头表示区分大小写的正则匹配; ~*开头表示不区分大小写的正则匹配 /通用匹配, 如果没有其它匹配,任何请求都会匹配到3.Location正则案例1.精确匹配...转载 2020-11-14 20:31:55 · 465 阅读 · 0 评论 -
Nginx系列教程(06) - 配置反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。例如:启动一个Tomcat (127.0.0.1:8080),使用nginx反向代理直接跳转到127.0.0.1:8080,流程如下图所示:那么该如何实现呢?下面我们来演示一下。1.配置nginx.conf首先配置nginx.conf(在nginx安装目录转载 2020-11-14 20:30:32 · 101 阅读 · 0 评论 -
Nginx系列教程(05) - 虚拟主机配置
前言关于Nginx虚拟主机的配置,可以分为以下三种方式:基于域名的虚拟主机,通过域名来区分虚拟主机(主要应用外部网站) 基于端口的虚拟主机,通过端口来区分虚拟主机(主要应用于公司内部网站,外部网站的管理后台) 基于ip的虚拟主机,几乎不用下面主要针对于前两种方式来讲解。本文目录结构:l____1.基于域名配置虚拟主主机l_______1.1 环境准备l_______1.2 html目录创建l_______1.3 配置虚拟主机l_______1.4 重启Nginx并测试l____2.基于端口转载 2020-11-14 20:28:36 · 84 阅读 · 0 评论 -
Nginx系列教程(04) - 基础理论
1.负载均衡学习Nginx之前,我们先来了解一个概念“负载均衡”:负载均衡:建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡:英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。当然负载均衡也有它的缺点:使用负载均衡后,实际用到的服务器会被集群多台,那么这时候就会产生..转载 2020-11-14 20:25:54 · 144 阅读 · 0 评论 -
Nginx系列教程(03) - 外网映射(NatApp)
在做微信开发或者是对接第三方支付接口时,回调接口可能需要外网访问(内网穿透)。这时候开发者在本地测试的时候,需要用到外网测试工具。平时常用的外网测试工具有natapp、ngrok,下面我们主要来讲讲NatApp。NatApp官网地址:https://natapp.cn/1.注册账号注册账号需要实名制,注册地址:https://natapp.cn/register按照常规的一步一步来操作就可以了2.实名验证需要支付宝验证,验证成功后界面如下:3.购买免费隧道购买:4.转载 2020-11-14 20:24:57 · 877 阅读 · 0 评论 -
Nginx系列教程(02) - 高可用与高并发介绍
01 大型网站系统的特点高并发,大流量:需要面对高并发用户,大流量访问。举个例子,去往迪拜的飞机有200张票,但是有100w人都挤进系统买票,如何让这100w人能够看到票务的实时更新,以及顺利的买到一张票,都是一个网站架构师应该考虑的问题。这也许对于淘宝的“双十一”1000w的一分钟独立访问用户量来说,是个微不足道的数字,但是对于用户的体验以及网站的口碑来说,都是一项不小的挑战。高可用:相对于高并发来说,高可用并不是一个比较有规律的参数,7*24 是每个网站的梦想,但是你并不知道,在某一刻,他就没理转载 2020-11-14 20:24:03 · 144 阅读 · 0 评论 -
Nginx系列教程(01) - DNS域名解析过程
DNS域名解析整个过程大体描述如下,其中前两个步骤是在本机完成的,后8个步骤涉及到真正的域名解析服务器:1.浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短都不太好,如果时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析..转载 2020-11-14 20:23:12 · 286 阅读 · 0 评论 -
nginx配置文件解读
nginx配置文件主要分为四个部分:main{ #(全局设置)http{ #服务器upstream{} #(负载均衡服务器设置:主要用于负载均衡和设置一系列的后端服务器)server{ #(主机设置:主要用于指定主机和端口)location{} #(URL匹配特点位置的设置)}}}server继承main,location继承server,upstream即不会继承其他设置也不会被继承。一、main 全局配置nginx在运行时与具体业务功能(比如http服务或者emai转载 2020-08-21 09:17:51 · 167 阅读 · 0 评论 -
nginx入门
一、nginx 功能介绍Nginx因为它的稳定性、丰富的模块库、灵活的配置和低系统资源的消耗而闻名.业界一致认为它是Apache2.2+mod_proxy_balancer的轻量级代替者,不仅是因为响应静态页面的速度非常快,而且它的模块数量达到Apache的近2/3。对proxy和rewrite模块的支持很彻底,还支持mod_fcgi、ssl、vhosts ,适合用来做mongrel clusters的前端HTTP响应。nginx和Apache一样使用模块化设计,nginx模块包括内置模块和第三方模块转载 2020-08-21 09:16:02 · 158 阅读 · 0 评论 -
什么是OpenResty
OpenResty是一个成熟的网络平台,它集成了标准的Nginx核心,LuaJIT,许多精心编写的Lua库,许多高质量的第三方Nginx模块以及大多数外部依赖项。它旨在帮助开发人员轻松构建可伸缩的Web应用程序,Web服务和动态Web网关。通过利用各种精心设计的Nginx模块(其中大部分由OpenResty团队自己开发),OpenResty有效地将nginx服务器转变为功能强大的Web应用服务...转载 2019-11-16 17:28:56 · 34547 阅读 · 0 评论 -
centos7 下openresty+lua+redis的安装
一、简介OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的...原创 2019-11-08 09:32:44 · 927 阅读 · 0 评论 -
预防SYN攻击的配置
什么是SYN攻击? 攻击者短时间伪造不同IP地址的SYN报文,快速占满backlog队列,使服务器不能为正常用户服务,SYN攻击是所有黑客攻击事件中最常见又最容易被利用的一 种攻击手法,由来已久,破坏威力巨大。SYN攻击属于DOS攻击的一种, 它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源 TCP连接握手示意图SYN_SENT 状态 • net....原创 2019-11-03 23:58:42 · 609 阅读 · 0 评论 -
nginx安装lua模块
为什么需要? Nginx官方自带了非常多的核心模块再加上第三方的模块能够满足我们大部分的业务需要,但是业务的需求、业务的场景变化需要添加些额外的功能,如果自己 去开发一个nginx模块相对来说比较笨重,我们可以使用lua脚本直接内嵌到nginx当中实现一些业务逻辑,完成一些特殊的功能需求。 什么是lua? Lua是一种轻量级、可嵌入式的脚本语言,这样可以非常容易的嵌入到其他语言中使...原创 2019-11-03 23:57:46 · 2133 阅读 · 1 评论 -
nginx缓存机制(浏览器缓存及nginx缓存)
什么是缓存? Web缓存是可以自动保存常见文档副本的HTTP 设备。当Web请求抵达缓存时,如果本地有“已缓存的”副本,就可以从本地设备而不是服务器中提取这个文 档。为什么使用缓存? 缓存减少了冗余的数据传输,节约了网络费用 缓存缓解了网络瓶颈的问题,对于带宽的要求 缓存降低了对原始服务器的要求,降低服务器压力 缓存加速了页面的展示 缓存的分类: 缓存分为服务端侧(比...原创 2019-11-03 23:59:23 · 7684 阅读 · 0 评论 -
nginx代理模块
一、nginx负载均衡当我们的应用单例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台、几十台、几百台,我们需要一个入口,将客户端请求均衡分布在后台的多 个服务器上。负载均衡在服务端开发中算是一个比较重要的特性, nginx 提供的负载均衡可以实现上游服务器的负载均衡、故障转移、失败重试、容错、健康检查,当某些 上游服务器出现问题时,可以将请求转到其它的上游服务器从而保障高可用。...原创 2019-10-30 23:00:36 · 627 阅读 · 0 评论 -
nginx配置详解之events模块
events模块中包含nginx中所有处理连接的设置.常用配置项如下events{ accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off #use epoll; #事件驱动模型,select|poll|kqueue|epoll|r...转载 2019-10-29 14:20:45 · 537 阅读 · 0 评论 -
使用yum安装下的nginx,添加模块的方法
前言由于yum的方便性,有的时候我们对某些软件的安装无需特殊的需求时,通常是直接使用yum来安装软件。下面介绍的使用对使用yum安装的nginx添加新模块的方法。nginx添加第三方模块nginx是不支持动态的安装和新加载模块的。因此,如果使用的是yum安装了nginx,需替换成源码安装的nginx,再进行模块的添加,相当于重新编译安装了nginx。【1】nginx源码包下载<...转载 2019-10-27 12:19:28 · 2194 阅读 · 0 评论 -
nginx防止DDOS攻击配置
防御DDOS是一个系统工程,攻击花样多,防御的成本高瓶颈多,防御起来即被动又无奈。DDOS的特点是分布式,针对带宽和服务攻击,也就 是四层流量攻击和七层应用攻击,相应的防御瓶颈四层在带宽,七层的多在架构的吞吐量。对于七层的应用攻击,我们还是可以做一些配置来防御的,例如前端是 Nginx,主要使用nginx的http_limit_conn和http_limit_req模块来防御。 ngx_http_...转载 2019-10-28 22:43:56 · 632 阅读 · 0 评论 -
consul动态负载均衡
什么是动态负载均衡 nginx-upsync-module 提供了动态的负载均衡,动态更新上游的服务器不需要 reload nginx ,它的功能是拉取 consul 的后端 server 的列表,并更新 Nginx 的路由信息。此模块不依赖于任何第三方模块。 consul 作为 Nginx 的 db,利用 consul 的 KV 服务,每个 Nginx work 进程独立的去拉取各...原创 2019-10-31 16:35:36 · 2045 阅读 · 0 评论 -
nginx的平滑升级---yum安装
1、为什么要对 nginx 平滑升级随着 nginx 越来越流行,并且 nginx 的优势也越来越明显,nginx 的版本迭代也来时加速模式,1.9.0版本的nginx更新了许多新功能,例如 stream 四层代理功能,伴随着 nginx 的广泛应用,版本升级必然越来越快,线上业务不能停,此时 nginx 的升级就是运维的工作了。nginx 方便地帮助我们实现了平滑升级。其原理简单概括,就是...转载 2019-10-28 22:43:08 · 733 阅读 · 1 评论 -
nginx优化配置实际案例
一、速率限制请求1、第一种情况nginx.conf配置如下:测试结果如下:2、第二种情况nginx.conf配置如下:运行结果如下:3、第三种情况nginx.conf配置如下:运行结果如下:二、ip访问模块限制1、allow、deny限制2、geo做简单的限制2、基于map指令和geo指令的限速白...原创 2019-10-23 18:30:32 · 277 阅读 · 0 评论 -
nginx优化配置及方法论
一、优化方法论从软件层面提升硬件使用效率-增大CPU的利用率 -增大内存的利用率 -增大磁盘10的利用率 -增大网络带宽的利用率提升硬件规格-网卡:万兆网卡,例如10G、25G、40G等 -磁盘:固态硬盘 -CPU :更快的主频,更多的核心,更大的缓存,更优的架构二、Nginx相关优化配置1、如何增大Nginx使用CPU的有效时长 能够使用全部CPU资源 ...原创 2019-10-19 11:17:54 · 192 阅读 · 0 评论 -
nginx优化---常用模块使用
一、对客户端进行限制相关配置预防攻击一般是下面的需求:秒杀、抢购并发限制1、防止攻击limit_req_zone 用来限制单位时间内的请求数,即速率限制,采用的漏桶算法2、nginx限制请求数 limit_req_zone 语法: limit_req_zone $variable zone=name:size rate=rate;默认值: none配置段: http...原创 2019-10-19 10:29:11 · 416 阅读 · 0 评论 -
select、poll、epoll之间的区别
IO多路复用之select、poll、epoll详解目前支持I/O多路复用的系统调用有select,pselect,poll,epoll,I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,pselect,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己...转载 2019-10-18 12:39:35 · 88 阅读 · 0 评论 -
php-fpm与nginx通信机制
一、CGI协议与FastCGI协议CGI(Common Gateway Interface:通用网关接口)是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据库API 与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。FastCGI程序和web服务器之间通过可靠的流式传输(Unix Domain Sock...原创 2019-10-17 11:20:04 · 322 阅读 · 0 评论 -
Nginx配置后无法解析PHP问题
问题一:nginx虚拟域名打开是下载而不是打开网页配置Nginx服务器之后,打开虚拟域名,是直接下载而不是直接打开网页,是因为配置的Nginx无法解析PHP的原因。1.打开nginx.conf配置文件,我的如下(与解析PHP相关的片段):红圈那句话很重要,指明nginx与fastcgi交互的id和端口号,也就是fastcgi监听的端口。location ~ \.php$ 表示匹...原创 2019-10-16 12:32:40 · 5862 阅读 · 3 评论 -
nginx配置详解
Nginx的配置文件结构Nginx的配置文件nginx.conf位于其安装目录的conf目录下。nginx.conf由多个块组成,最外面的块是main,main包含Events和HTTP,HTTP包含upstream和多个Server,Server又包含多个location:main(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)和 location(URL匹...转载 2019-10-13 17:41:24 · 84 阅读 · 0 评论