nginx最最最详细教程来了

Python学生管理系统+MySQL+tkinter+pyinstaller(终章)(1) 文章中涉及到的知识点我都已经整理成了资料,录制了视频供大家下载学习,诚意满满,希望可以帮助在这个行业发展的朋友,在论坛博客等地方少花些时间找资料,把有限的时间,真正花在学习上,所以我把这些资料,分享出来。相信对于已经工作和遇到技术瓶颈的朋友们,在这份资料中一定都有你需要的内容。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取! 阅读详情

定义

Nginx是由俄罗斯的程序设计师Igor sysev开发的 轻量级的web服务和代理服务器,nginx拥有很高的并发处理能力,有报告说明能吃50000并发连接

特点

占用内存少、稳定、并发能力强

基于epool 事件驱动架构,使其支持百万级别的TCP连接

扩展性好,因为nignx是高度模块化且拥有自由软件许可证,使得很多第三方模块可以介入

支持跨平台,nginx 支持Linux,Windos

正向代理和反向代理

正向代理

客户端知道要访问的地址是什么而服务器只知道请求来自哪个服务器,不知道真实的客户端是什么,除非代理服务器将真实的客户端地址也代理过去

             

图片

反向代理

反向代理,客户端对代理端是无感知的,客户端不需要配置任何东西就可以访问,只需要将请求发送的方向代理服务器就可以获取到后端真实服务数据,此时方向代理服务器和目标服务器对外是一体,暴露在外的是代理服务器地址,隐藏了真实服务器ip地址

图片

示例

图片

负载均衡

比如一个服务或者一台机器的性能有限,那么当访问量达到一定阙值的时候,我们就需要使用到负载均衡,也就是客户端发起的请求, 经过代理端,代理端会将请求根据一定的算法标准分发到后端的各个服务器上

图片

示例

图片

负载均衡策略

nginx的负载均衡用于upstream模板定义的后端服务器列表中选取一台服务器接收用户的请求。一个基本的upstream模块如下:

upstream [服务器组名称]{                
  server [IP地址]:[端口号];                
  server [IP地址]:[端口号];                
  ....                
}

在upstream模块配置完成后,要让指定的访问反向代理到服务器列表,格式如下:

location ~ .*$ {                
  index index.jsp index.html;                
  proxy_pass http://[服务器组名称];                
}

这样就完成了最基本的负载均衡,但是这并不能满足实际需求。                
目前Nginx的upstream模块支持6种方式的负载均衡策略(算法):

轮询

最基本的配置方法,是upstream模块默认的负载均衡策略。每个请求会按时间顺序平均分配到不同的后端服务器。有如下参数:

fail_timeout           与max_fails结合使用                  
max_fails           在fail_timeout参数设置的时间内最大失败次数。如果在这个时间内,所有该服务器的请求都失败了,那么认为该服务器停机                  
fail_time           服务器被认为停机的时长,默认10s(被认为停机的服务器尝试间隔?)                  
backup           标记该服务器为备用服务器。当主服务器停止时,请求会被发送到它这里                  
down           标记服务器永久停机

注意:1.down标记的服务器会自动剔除;2.缺省就是轮询;3.此策略适合服务器配置无状态且短平块的服务使用

weight

 权重方式,在轮询策略的基础上指定轮询的几率。也可以认为是在轮询的基础上新增了一个weight的参数,此参数指定轮询的几率,值为number。upstream模块配置模板如下:

upstream [服务器组名称]{                  
  server [IP地址]:[端口号] weight=2;                  
  server [IP地址]:[端口号];                  
  ....                  
}

 在该例子中,没有weight参数的服务器默认为1,weight的数值与访问比例成正比,所有weight值的总和为一个循环单位,服务器自身的weight值为循环单位内的轮询次数。

 注意:1.权重越高分配到的请求越多;                  
2.此策略可以和least_conn策略、iphash策略结合使用;                  
3.此策略比较适合服务器硬件配置差距较大的情况。

ip_hash

 依据ip分配方式,指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端请求一致发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题。upstream模块配置模板如下:

upstream [服务器组名称]{                  
  ip_hash;                  
  server [IP地址]:[端口号] weight=2;                  
  server [IP地址]:[端口号];                  
  ....                  
}

 注意:1.nginx1.3.1之前的版本不能在ip_hash中使用权重(weight);2..ip_hash不能与backup同时使用;3.此策略适合有状态服务的程序,比如session;4.当有服务器需要剔除,必须手动down掉。

least_conn

 最少连接方式,把请求发给链接数最少的后端服务器。轮询是把请求平均分配给各个后端,使它们的负载大致相同。但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。upstream模块配置模板如下:

upstream [服务器组名称]{                  
  least_conn;                  
  server [IP地址]:[端口号] weight=2;                  
  server [IP地址]:[端口号];                  
  ....                  
}

 注意:此策略适合请求处理时间长短不一造成的服务器过载情况。

fair

 响应时间方式,按照服务器端的响应时间来分配请求,响应时间短的优先分配。upstream模块配置模板如下:

upstream [服务器组名称]{                  
  server [IP地址]:[端口号] weight=2;                  
  server [IP地址]:[端口号];                  
  ....                  
  fair;                  
}

注意:需要安装第三方插件。

url_hash

 url分配方式,按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再次收到请求,就可以在缓存中读取。upstream模块配置模板如下:

upstream [服务器组名称]{                  
  hash $request_uri;                  
  server [IP地址]:[端口号] weight=2;                  
  server [IP地址]:[端口号];                  
  ....                  
}

动静分离

一般来说为了加快网站的解析速递,我们会吧动态页面和静态页面分开解析,降低单个服务器压力

图片

下载

https://nginx.org/en/download.html

图片

图片

安装

基础环境安装

yum install gcc g++  pcre-devel  zlib-devel openssl-devel openssl-devel -y

解压安装

[root@bot bak]# wget https://nginx.org/download/nginx-1.22.1.tar.gz                
--2023-10-18 17:18:44--  https://nginx.org/download/nginx-1.22.1.tar.gz                
Resolving nginx.org (nginx.org)... 3.125.197.172, 52.58.199.22, 2a05:d014:edb:5702::6, ...                
Connecting to nginx.org (nginx.org)|3.125.197.172|:443... connected.                
HTTP request sent, awaiting response... 200 OK                
Length: 1073948 (1.0M) [application/octet-stream]                
Saving to: ‘nginx-1.22.1.tar.gz’                
               
100%[=======================================================================================================================================================================================================>] 1,073,948   1.02MB/s   in 1.0s                
               
2023-10-18 17:18:46 (1.02 MB/s) - ‘nginx-1.22.1.tar.gz’ saved [1073948/1073948]                
               
[root@bot bak]# tar xf nginx-1.22.1.tar.gz                
[root@bot bak]# ll                
total 1056                
drwxr-xr-x 8 ftpuser yibot    4096 Oct 19  2022 nginx-1.22.1                
-rw-r--r-- 1 root    root  1073948 Oct 19  2022 nginx-1.22.1.tar.gz                
[root@bot bak]#

需要注意的是这里解压出来的是源码需要经过编译才可以安装

图片

参数解释

--prefix  指定nginx的安装目录

--pid-path  指定nginx 的pid

--lock-path 锁定安装文件,防止被恶意篡改或误操作

--error-log 错误日志

--http-log-pathhttp 日志

--with-http_gzip_static_module 启用gzip模块,在线实施压缩数据流

--http-client-body-temp-path 设定http代理临时目录

--http-fastcgi-temp-path 设定fastcgi的临时目录

--http-uwsgi-temp-path 设置uwsgi的临时目录

--http-scgi-temp-path 设置scgi的临时目录

编译安装

make && make install

启停

/usr/local/nginx/sbin/nginx

/usr/local/nginx/sbin/nginx -s stop

/usr/local/nginx/sbin/nginx -s reload 重启

测试

浏览器访问 服务器+80

常用的命令

图片

目录结构

图片

配置文件结构

图片

配置属性说明

图片

图片

配置解释

               

图片

图片

和LVS对比

LVS

1-负载能力强,因为其工作方式逻辑非常简单,仅进行请求分发,而且工作在网络的第4层,没有流量,所以其效率不需要有过多的忧虑。

2-基本能支持所有应用,因为工作在第4层,所以LVS可以对几乎所有应用进行负载均衡,包括Web、数据库等。

3-LVS比较依赖网络环境。只有使用DR模式且服务器在同一网段内分流,效果才能得到保证

注意:LVS并不能完全判别节点故障,比如在WLC(无线局域网控制器)规则下,如果集群里有一个节点没有配置VIP,将会导致整个集群不能使用

Nginx

1-工作在网路第7层,所以可以对HTTP应用实施分流策略,比如域名、结构等。相比之下,LVS并不具备这样的功能,所以Nginx可使用的场合远多于LVS

2-Nginx对网络的依赖比较小,理论上只要Ping得通,网页访问正常就能连通。

3-Nginx可以通过服务器处理网页返回的状态吗、超时等来检测服务器内部的故障,并会把返回错误的请求重新发送到另一个节点。

4-LVS的安装、配置及测试所花的时间比较长,因为LVS对网络以来比较大,很多时候有可能因为网络问题而配置不能成功,出现问题时,解决的难度也相对较大。

目前LVS和LDirectd 也支持对服务器内部情况的监控,但不能重新发送请求。

比如用户正在上传一个文件,而处理该上传信息的节点刚好出现故障,则Nginx会把上传请求重新发送到另一台服务器,而LVS在这种情况下会直接断掉。

Nginx还能支持HTTP和Email(Email功能很少有人使用),LVS所支持的应用在这个电商比Nginx更多。

4-Nginx同样能承受很高负载并且能稳定运行,由于处理流量受限于机器I/O等配置,所以负载能力相对较差。

5-Nginx 安装、配置及测试相对来说比较简单,因为有相应的错误日志进行提示。

6-Nginx本身没有现成的热备方案,所以在单机上运行风险较大,建议KeepAlived配合使用

Nginx可以作为LVS的节点机器使用,充分利用Nginx的功能和性能。当然这种情况也可以直接使用Squid等其他具备分发功能的软件。

使用环境对比

具体应用具体分析。如果是比较小型的网站(每日PV小于100万),用户Nginx就完全可以应对,如果机器也不少,可以用DNS轮询。

LVS后用的机器较多,在构建大型网站或者提供重要服务且机器较多时,可多加考虑利用LVS。

概念类

nginx

Nginx("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMCP/POP3/SMTP服务器。

用途

Nginx作为负载均衡服务器:既可以在内部直接支持Rails和PHP程序对外进行服务,也可以支持作为HTTP代理服务器对外进行服务;

Nginx作为邮件代理服务器。

优势

1.Nginx专为性能优化而开发,实现上非常注重效率。它支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 5w个并发连接数。

2.Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。              
Nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。

3.Nginx支持热部署。它的启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行升级。

4.Nginx采用master-slave模型,能够充分利用SMP(对称多处理)的优势,且能够减少工作进程在磁盘I/O的阻塞延迟。当采用select()/poll()调用时,还可以限制每个进程的连接数。

5.Nginx代码质量非常高,代码规范,手法成熟,模块扩展也很容易。

6.Nginx采用了一些OS提供的最新特性如,从而大大提高了性能。

概念类

LVS

LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器集群系统。宗旨是使用集群技术和Linux操作系统实现一个高性能、高可用的服务器。

LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度起自动屏蔽服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。              
整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。

集群的三层结构:

负载调度器

整个集群对外面的前端机,负责将客户的请求发送到一组服务器执行,而客户认为服务来自一个IP地址(虚拟IP地址)上的。                
采用IP负载均衡技术、基于内容请求分发技术或者两者相结合。

服务器池

是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。

共享存储

它为服务器池提供一个共享的存储区,容易使得服务服务器拥有相同的内容。提供相同的服务                
共享存储通常是数据库、网络文件系统、分布式文件系统。

分布式锁管理器:

当不同服务器上的应用程序同事读写访问分布式文件系统上同一资源时,应用程序的访问冲突需要消解才能使得资源处于一致状态,这就需要分布式锁管理器。

监视器(Graphic Monitor):

Graphic Monitor是为系统管理员提供整个集群系统的监视器,它可以监视系统的状态。                
Graphic Monitor是基于浏览器的,所以无论管理员在本地还是异地都可以监测系统的状况。

LVS三种负载均衡:

VS/NAT

VS/NAT是一种最简单的方式,所有的服务器只需要将自己的网关指向Director即可。

优势:服务器可以运行任何支持TCP/IP的操作系统,只需要一个IP地址配置在调度器上,服务器组可以用私有的IP地址。

缺点:伸缩能力有限,调度器本身可能称为系统的新瓶颈。

VS/TUN

调度器根据各个服务器的负载情况,动态地选择一台服务器,将请求报文封装在另一个IP报文中                
再将封装后的IP报文转发给选出的服务器;                
服务器收到报文后,先将报文解封获得原来目标地址为 VIP 的报文,服务器发现VIP地址被配置在本地的IP隧道设备上,所以就处理这个请求,然后根据路由表将响应报文直接返回给客户。

优势:负载调度器枝江请求调度到不同的后端服务器,后端服务器将应答直接返回给用户,极大地增加负载调度器调度的服务器数量

VS/DR

VS/DR方式是通过改写请求报文中的MAC地址部分来实现的。                
调度器和服务器必需在物理上有一个网卡通过不间断的局域网相连。                
在VS/DR中,调度器根据各个服务器的负载情况,动态地选择一台服务器,不修改也不封装IP报文,而是将数据帧的MAC地址改为选出服务器的MAC地址,再将修改后的数据帧在与服务器组的局域网上发送。                
调度器的VIP地址对外可见,而服务器的VIP对外是不可见的。

优势:同VS/TUN方法一样,提高了LVS集群系统的伸缩性。这种方法没有IP隧道的开销,效率最高。但是要求负载调度器与服务器都有一块网卡连在同一物理网段上,服务器网络设备不做ARP响应。

分布式文件系统:

1.分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。

2.分布式文件系统的设计基于客户机/服务器模式。

3.分布式文件系统可以有效解决数据的存储和管理难题:将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统,众多的节点组成一个文件系统网络。

系统分类:

NFS(网络文件系统)

NFS的实质在于用户间计算机的共享。用户可以联结到共享计算机并像访问本地硬盘一样访问共享计算机上的文件。

Andrew系统

通过基于单元的结构生成一种可管理的分布式环境。一个单元是某个独立区域中文件服务器和客户机系统的集合,这个独立区域由特定的机构管理。

KASS系统

基于JAVA的纯分布式文件系统,功能类似于DFS、GFS、Hadoop,通过HTTP WEB为企业的各种信息系统提供底层文件存储及访问服务,搭建企业私有云存储服务平台。

无状态系统NFS和回呼系统AFS区别:

无状态系统

服务器并不保存其客户机正在缓存的文件的信息。因此,客户机必须协同服务器定期检查是否有其他客户改变了自己正在缓存的文件。

回呼系统

服务器记录它的那些客户机的所作所为,并保留它们正在缓存的文件信息。服务器在一个客户机改变了一个文件时使用应答技术通知其它客户机。

lvs的优势:

1.抗负载能力强,因为lvs工作方式的逻辑是非常简单的,而且工作再网络层第4层,仅作请求分发用,没有流量,所以在效率上基本不需要太过考虑。lvs一般很少出现故障,即使出现故障一般也是其他地方(如内存、CPU等)出现问题导致lvs出现问题。

2.配置性低,这通常是一大劣势同时也是一大优势,因为没有太多的可配置的选项,所以除了增减服务器,并不需要经常去触碰它,大大减少了人为出错的几率。

3.工作稳定,因为其本省抗负载能力很强,所以稳定性高也是顺理成章的事,另外各种lvs都有完整的双机热备方案,所以一点不用担心均衡器本身会出什么问题,节点出现故障的话,lvs会自动判别,所以系统整体式非常稳定的。

4.无流量,lvs仅仅分发请求,而流量并不从它本身出去,所以可以利用它这点来做一些线路分流之用。没有流量同时也保住了均衡器的IO性能不会受到大流量的影响。

5.lvs基本上能支持所有应用,因为绿色工作在第4层,所以它可以对几乎所有应用做负载均衡,包括http、数据库、聊天室等。

另外:lvs也不是完全能判别节点故障的,比如在wlc分配方式下,集群里有一个节点没有配置vip,会使整个集群不能使用,这时使用wrr分配方式则会丢掉一台机器。目前这个问题还在进一步测试中。所以用lvs也得多多当心为妙。

nginx和lvs作对比的结果:

1.nginx工作在网络的第7层,所以它可以针对http应用本身来做分流策略,比如针对域名、目录结构等,相比之下lvs并不具备这样的功能,所以nginx单凭这点可以利用的场合就远多于lvs了            
但nginx有用的这些功能使其可调整度要高于lvs,所以经常要去触碰触碰,由lvs的第2条优点来看,触碰多了,人为出现问题的几率也就会大。

2.nginx对网络的依赖较小,理论上只要ping得通,网页访问正常,nginx就能连得通,nginx同时还能区分内外网,如果是同时拥有内外网的节点,就相当于单机拥有了备份线路;            
lvs就比较依赖于网络环境,目前来看服务器在同一网段内并且lvs使用direct方式分流,效果较能得到保证。            
另外注意,lvs需要向托管商至少申请多于一个ip来做visual ip,貌似是不能用本省的ip来做VIP的。

3.nginx安装和配置比较简单,测试起来也很方便,因为它基本能把错误用日志打印出来。            
lvs的安装和配置、测试就要花比较长的时间,因为同上所述,lvs对网络依赖性比较大,很多时候不能配置成功都是因为网络问题而不是配置问题,出了问题要解决也相应的会麻烦的多。

4.nginx也同样能承受很高负载且稳定,但负载度很稳定度差lvs还有几个等级:nginx处理所有流量所以受限于机器IO和配置;            
本身的bug也还是难以避免的;            
nginx没有现成的双机热备方案,所以跑在单机上还是风险比较大,单机上的事情全都很难说。

5.nginx可以检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点。            
目前lvs中ldirectd也能支持针对服务器内部的情况来监控,但lvs的原理使其不能重发请求。重发请求这点,比如用户正在上传一个文件,而处理该上传的节点刚好在上传过程中出现故障,nginx会把上传切到另一台服务器重新处理,而lvs就直接断掉了,如果是上传一个很大的文件或者很重要的文件的话,用户可能会因此而恼火。

6.nginx对请求的异步处理可以帮助节点服务器减轻负载,键入使用Apache直接对外服务,那么出现很多的窄带链接(解释)时Apache服务器将会占用大量内存而不能释放,使用多于一个nginx做Apache代理的话,这些窄带链接会被nginx挡住,Apache上就不会堆积过多的请求,这样就减少了相当多的内存占用。            
这点使用squid也有相同的作用,即使squid本身配置为不缓存,对Apache还是有很大帮助你的。lvs没有这些功能,也就无法能比较。

7.nginx能支持http和Email(Email的功能估计比较少人用),lvs所支持的应用在这点上会比nginx更过。

在使用上,一般最前端所采取的的策略应是lvs,也就是dns的指向应为lvs均衡器,lvs的优点另它非常适合做这个任务。

重要的ip地址,最好交由lvs托管,比如数据库的ip、webservice服务器的ip等等,这些ip地址随着时间推移,使用面会越来越大,如果更换ip则故障会接踵而来。            
所以将这些重要ip交给lvs托管式最为稳妥的,这样做的唯一缺点是需要VIP数量会比较多。            
           
nginx可以作为lvs节点机器使用,一是可以利用nginx的功能,二是可以利用nginx的性能。当然这一层面也可以直接使用squid,squid的功能方面就比nginx弱不少,性能上也有所逊色于nginx。            
           
nginx也可以作为中层代理使用,这一层面nginx基本上无对手,唯一可以撼动nginx的就只有lighttpd了,不过lighttpd目前还没有能做到nginx完全的功能,配置也不那么清晰易读。另外,中层代理的ip也是重要的,所以中层代理业拥有一个VIP和lvs是最完美的方案了。            
           
nginx也可以作为网页静态服务器。

           

扩展1

使用nginx+keepalived实现负载均衡,解决单点与高流量并发问题。为什么要用nginx而不用lvs?              
             
7个理由:              
             
1.高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到2——3万并发连接数。              
             
2.内存消耗少:在3万并发连接数下,开启的10个nginx进程才消耗150M内存(150*10=150M)。              
             
3.配置文件非常简单:风格跟程序一样通俗易懂。              
             
4.成本低廉:nginx为开源软件,可以免费使用。而购买F5 big-ip、netscaler等硬件负载均衡交换机则需要十多万至几十万人民币。              
             
        (使用nginx做七层负载均衡的理由?)              
             
5.支持rewrite重写规则:能够根据域名、url的不同,将http请求分到不同的后端服务器群组。              
             
6.内置的健康检查功能:如果nginx proxy后端的某台web服务器宕机了,不会影响前端访问。              
             
7.节省带宽:支持gzip压缩,可以添加浏览器本地缓存的header头。

扩展2

keepalived是linux下面实现vrrp备份路由的高可靠性运行件。基于keepalived设计的服务模式能够真正做到主服务器和备份服务器故障时ip瞬间无缝交接。              
             
nginx是基于linux2.6内核中epoll模型http服务器,与Apache进程派生模式不同的是nginx进程基于master+slave多进程模型,自身具有非常稳定的子进程管理功能。              
在master进程分配模式下,master进程永远不进行业务处理,只是进行任务分发,从而达到master进程的存活高可靠性,slave进程所有的业务信号都由主进程发出,slave进城所有的超时任务都会被master终止,属于阻塞式人物模型。              
             
服务器ip存活检测是由keepalived自己本身完成的,将2台服务器配置成keepalived互为主辅关系,任意一方机器故障对方都能够将ip接管过去。              
             
keepalived的服务器ip通过其配置文件进行管理,依靠其自身的进程去确定服务器的存活状态,如果在需要对服务器进程在线维护的情况下,只需要停掉被维护机器的keepalived服务进程,另外一台服务器就能够接管该台服务器的所有应用。

nginx 常用模块

.HttpProxyModule:

•功能:允许 Nginx 充当反向代理服务器,将客户端请求转发到后端的多个服务器上。

•使用方法:在 Nginx 配置文件中使用 proxy_pass 指令指定后端服务器的地址和端口。可以配置负载均衡、缓存、SSL/TLS 加密等选项。

2.HttpRewriteModule:

•功能:用于 URL 重写和重定向,修改请求的 URI 或将请求重定向到其他 URL 地址。

•使用方法:使用 rewrite 指令在 Nginx 配置文件中指定规则。可以根据正则表达式匹配请求的路径,并进行相应的重写或重定向操作。

3.HttpSSLModule:

•功能:支持 SSL/TLS 加密功能,使 Nginx 能够处理加密连接。

•使用方法:配置 SSL 证书、密码套件、协议版本等参数。在 Nginx 配置文件中使用 listen 指令设置监听端口为 HTTPS,并指定 SSL 相关配置。

4.HttpGzipModule:

•功能:对响应进行压缩,减小传输的数据量,提高性能。

•使用方法:使用 gzip 指令在 Nginx 配置文件中启用 gzip 压缩。可以配置压缩级别、压缩类型等参数。

5.HttpCacheModule:

•功能:实现 HTTP 缓存,减少后续相同请求的响应时间。

•使用方法:使用 proxy_cache_path 指令指定缓存路径,在需要缓存的地方使用 proxy_cache 指令启用缓存。可以配置缓存的有效性判断条件、存储策略等选项。

6.HttpAccessModule:

•功能:用于访问控制,限制对指定资源的访问。

•使用方法:使用 allow 和 deny 指令在 Nginx 配置文件中指定允许或拒绝访问的主机、IP 地址、用户等。可以根据需要设置多个规则。

7.HttpUpstreamModule

•功能:Nginx的负载均衡模块,用来对后台服务器的任务调度及分配,分配原则可以通过算法进行控制。

•使用方法:一般和http_proxy模块一起使用,常见模式:Nginx+Apache, Nginx+Tomcat

             

这些模块是 Nginx 提供的常用模块之一,每个模块都有自己的特定功能和使用方法。你可以根据具体需求,在 Nginx 配置文件中进行相应的配置。

lb1

 因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

nginx 超详细讲解+实操 为了有一个全面的认知,接下来我们先来看看nginx的架构以及一些特点。从上边这张图,我们可以一览nginx的架构设计,首先我们可以直观得出事件驱动&异步非阻塞:多进程机制:proxy cache(服务端缓存):反向代理:nginx模块示意图如下:nginx常用场景挺多的,比如:其中我认为 最最 基础的也是应用最多的就是 反向代理,这里我们画个图简单看下什么是反向代理 (ps:其他的那些使用场景,我们先不做展开,放到下边一个个哔哔。)所谓反向代理,其实很好理解就是代理的服务端(与之对应的正向代理一般代理的是客 阅读详情

相关推荐

nginx(NGINX)详细下载安装及使用教程

NGINX 是一个非常流行的开源 Web 服务器和反向代理服务器,它可以帮助用户负载均衡(主要体现在可以创建多个服务器,一般将静态资源页面和动态页面分开部署到不同服务器,这样就可以降低服务器压力)、缓存、反向代理、SSL 终止等功能,常用于 Web 应用程序的开发和部署。什么是 NGINX?详细介绍)NGINX 是一个开源的 Web 服务器和反向代理服务器,它使用 Nginx 作为 Web 服务器和反向代理服务器的原因是它拥有高性能、可扩展性和可靠性。

Y2000104的博客 1万+

Nginx超详细入门教程

本文主要对nginx的配置文件进行了介绍,并对其核心功能:反向代理、负载均衡、动静分离以及其高可用性进行了详细讲解。

weixin_54065960的博客 1万+

超详细的Nginx入门教程

一、什么是nginx Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,使用c语言编写的一款web服务软件. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 二、为什么使用nginx? 作用: 1.反向代...

m0_64830133的博客 1万+

Nginx教程(小白必看,看了必会,不看血亏),

Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

S_ZaiJiangHu的博客 2万+

Linux系统下安装配置 Nginx 超详细图文教程

1、修改配置端口和默认访问页面#找到nginx的配置文件,编辑修改页面内容:#这里放置的是nginx默认显示的页面。

whatareyouding的专栏 1万+

Nginx:Windows详细安装部署教程

Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的。它也是一种轻量级的Web服务器,可以作为独立的服务器部署网站(类似Tomcat)。它高性能和低消耗内存的结构受到很多大公司青睐,如淘宝网站架设。先下载直接去官网nginx.org点击后就会下载,下载完成后开始安装,其实官网已经告诉了如何安装,右侧documentation -> ngin

时代各有不同,青春一脉相承。 1万+

Nginx使用教程

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件( IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。

蓝朽的小世界 8220

STDP实战:用PyTorch从零搭建脉冲神经网络(附完整代码)

本文提供了基于PyTorch从零搭建脉冲神经网络的实战教程,重点讲解了STDP学习规则的原理与工程实现。通过构建LIF神经元模型和向量化STDP层,并结合泊松编码,详细演示了如何构建一个能够进行无监督特征学习的混合网络架构,为探索神经形态计算和低功耗实时学习方案提供了完整代码与实践指南。

weixin_29056145的博客 265

全网最最最详细的CentOS7中通过编译的方式安装Nginx教程~

接下来,从 Nginx 的官方网站下载最新的源代码。你可以访问 Nginx 官网找到最新版本的下载链接。现在,你已经通过编译源代码的方式在 CentOS 7 上成功安装了 Nginx,并且配置为系统服务。脚本来定义安装选项,比如安装路径、启用的模块等。为了使 Nginx 能够在系统启动时自动启动,你可以为其创建一个 systemd 服务文件。首先,需要安装编译 Nginx 需要的依赖。根据你的需求,你可能需要添加或删除。请根据实际情况替换上述命令中的版本号。文件来配置 Nginx。在编译前,你可以使用。

舒一笑的博客 2791

PointNet/PointNet++模型调参实战:如何用PyTorch让你的点云分割精度再涨5个点?

本文深入探讨了PointNet/PointNet++模型在点云分割中的调参技巧,通过PyTorch实现精度提升5个点的实战方法。重点分析了点云密度自适应策略、感受野与细节保留的平衡,以及训练加速与稳定性技巧,适用于电力巡检、自动驾驶等场景的激光点云数据处理。

weixin_30836759的博客 477

数字逻辑设计大程——以撒的结合(Verilog语言)

前言 在大二学习数字逻辑设计课程(即计算机组成课程的前引课)时,期末大程题目我和同组的github成员lwaekfjlk 决定写一款基于Verilog语言的游戏。原型是我们两人都非常喜爱的一款游戏——The Binding of Isaac: Rebirth。在三天三夜的奋战后,基本完成了预期目标。由于亲自编写了其中种种,我们深知新手初期使用Verilog语言有多困难。而可悲的是,这又是之后计算机组成课程和体系结构课程所需的!因此,我们将top部分源码放在这里,供同袍们参考。若想引用还请注明出处。 代码部分

LuvLucifer的博客 1384

Nginx 教程(详细)

Nginx 教程 文章目录Nginx 教程1:简介2:安装2.1:安装2.1:安装 1:简介 Nginx(发音同engine x)是一个异步框架的 Web 服务器,也可以用作反向代理,负载平衡器 和 HTTP 缓存。 2:安装 2.1:安装 2.1:安装 wget http://nginx.org/download/nginx-1.18.0.tar.gz ...

qq_41974199的博客 1万+

ADS2023实战:手把手教你用Load-Pull设计40W LDMOS功率放大器(附工程文件)

本文以飞思卡尔MRF8P9040N LDMOS晶体管为例,详细介绍了在ADS 2023中设计一款40W功率放大器(PA)的全流程。内容涵盖从直流偏置设置、稳定性分析、核心的负载牵引(Load-Pull)仿真,到基于Smith圆图的匹配网络设计、谐波平衡性能验证,直至版图生成与优化。文章提供了手把手的实战指导和工程文件,旨在帮助射频工程师掌握高效率PA的设计方法与关键技巧。

cake8的博客 1071

nginx(NGINX)详细下载安装及使用教程(非常适合入门)

NGINX 详细安装使用教程,完整命令大全。nginx是一个非常流行的开源 Web 服务器和反向代理服务器,它可以帮助用户负载均衡、缓存、反向代理、SSL 终止等功能,常用于 Web 应用程序的开发和部署。什么是 NGINX?详细介绍)NGINX 是一个开源的 Web 服务器和反向代理服务器,它使用 Nginx 作为 Web 服务器和反向代理服务器的原因是它拥有高性能、可扩展性和可靠性。

a910247的博客 8万+

ArcGIS Pro符号化教程

本文详细介绍了ArcGIS Pro的软件设置和符号化操作步骤。主要包括:1)设置默认工程目录和关闭地图自动加载;2)创建新工程的基本流程;3)点要素的单一符号化方法,包括样式修改和图层调整;4)图表符号显示过滤器的使用,涉及字段添加、图表类型选择和背景设置。文章还提供了操作截图和数据下载链接,适合GIS初学者学习ArcGIS Pro的基础符号化操作。

WwLK123的博客 548

Android 13 灭屏音乐播放问题解决与优化建议

通过在中增加对音乐播放状态的检测,我们成功解决了客户应用在灭屏状态下音乐播放被中断的问题。

m0_60898338的博客 1157

Nginx最详细入门教程

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。linux内核版本为含2.6及以后的版本中nginx可使用的epoll模型,该模型的特点为epoll对于句柄时间的选择不是遍历的,是事件响应的,就是句柄上时间来就马上选择出来,不需要遍历整个句柄链表,因此效率非常高效。//设定日志格式,一般采用默认值即可,无需修改。

qq_58461022的博客 4882

反应动力学仿真软件:CHEMKIN_(12).CHEMKIN与其他软件的接口

通过上述介绍,我们详细探讨了如何将 CHEMKIN 与 MATLAB、Python、COMSOL、Aspen Plus 和 Ansys Fluent 等软件工具进行接口配置和数据交互。这些接口不仅能够显著提升 CHEMKIN 在反应动力学仿真中的应用效果,还能充分利用其他软件工具的强大功能,实现更复杂的数据处理和分析。希望这些内容对您在化学反应动力学仿真中的工作有所帮助。

kkchenjj的博客 1138

Mac 安装Nginx详细教程

本文介绍一下,如何在Mac系统中安装Nginx,把详细过程记录下来,方便以后查看,也方便大家学习。

Wjhsmart的博客 3万+

Yolov5自定义图片训练测试及模型调优(详细过程)

Yolov5自定义数据训练及测试1. 图像数据获取、标注2. 数据集划分及准备3. 配置训练参数,准备训练:3.1 修改data/训练配置xxx.yaml文件:3.2 修改models模型配置xxx.yaml文件4. 开始训练5. 测试训练后的模型: 1. 图像数据获取、标注 如果自定义训练自己的数据集,首先需要数据标注,至于数据来源可以是下载现有的开发数据集、拍照、爬虫等等。 如果是拍照、爬虫等获取的数据图片,需要进行数据标注,这个过程可以使用工具来做,但也需要一些手动操作 。。并且图片越多越好,如果

HowieXue 薛永浩的博客 10万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

使用 Nginx 搭建个人网站的详细教程

Nginx 是一个高性能的 Web 服务器软件,它具有低内存占用、高并发处理能力、轻量级等特点,被广泛应用于互联网中。在本教程中,我们将使用 Nginx 搭建一个基于 HTML 的简单个人网站。本教程介绍了如何使用 Nginx 搭建个人网站。我们首先安装了 Nginx,然后配置了虚拟主机和 SSL 证书。最后,我们介绍了如何使用限制请求速率和连接速率来防止 DDoS 攻击。通过本教程,您现在应该已经了解了如何使用 Nginx 搭建个人网站,并掌握了一些基本的 Nginx 配置技巧。

m0_61789994的博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【Nginx】彻底卸载Nginx以及安装Nginx的详细教程

今天尚硅谷出了新版的Nginx教程,感觉之前的教程有点浅所以我决定再看一遍,然后开始看之前要把之前的Nginx卸载掉。在安装教程对应版本的Nginx,这样看教程的时候错误可能会少一点。 目录 一、卸载Nginx 1、检查一下nginx服务是否在运行 2、停止Nginx 2、卸载Nginx 1)执行命令 rm -rf *删除nignx安装的相关文件(这个命令是看你nginx位置而定的) 2)如果设置了Nginx开机自启动的话,可能还需要下面两步 3)可以再用yum指令清理 二、安装Nginx

OMGcome的博客 6万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: 运维不得不会的一些运维技巧
下一篇: IP地址规划方案如何写,看完就明白
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值