深入理解NGINX(Nginx学习进阶)
深入理解NGINX(Nginx学习进阶)
2024-11-22 02:26:19  作者:醉过痛过  网址:https://m.xinb2b.cn/know/dta260997.html


本文将为您详细介绍如何在 CentOS 系统下部署 Nginx 项目。

本文在示例步骤中的软件版本如下,在实际操作时,请您以实际软件版本为准。

操作系统:CentOS 7.5nginx 版本:Nginx 1.12.2安装 Nginx

# 安装 n=Nginx:yum -y install nginx # 查看 Nginx 版本nginx -v# 查看 Nginx 安装目录rpm -ql nginx# 启动 Nginxservice nginx start

按照上面步骤按照好nginx后,访问服务器的公网 IP 地址,出现如下页面则表示 Nginx 部署完成:


Nginx 的默认根目录 root 是/usr/share/nginx/html,直接修改 html 下的 index.html 静态页面,用来标识这个页面的特殊性。

vim /usr/share/nginx/html/index.html# 在页面中输入Hello nginx , This is rs-1!URL is index.html

负载均衡(原“应用型负载均衡”)可以根据后端服务器的路径来进行请求转发,在/image路径下部署静态页面,相关命令如下:

# 新建目录 imagemkdir /usr/share/nginx/html/imagecd /usr/share/nginx/html/imagevim index.html# 在页面中输入Hello nginx , This is rs-1!URL is image/index.html

注意:

Nginx 的默认端口是80,如果想修改端口请修改配置文件并重启 Nginx。

验证 Nginx 服务

访问服务器的公网 IP 路径,如果可以显示出已部署好的静态页面,则证明 Nginx 部署成功。

rs-1 的 index.html 页面:


rs-1 的 /image/index.html 页面:



Nginx文件结构

首先看一下nginx配置文件结构

... #全局块events { #events块 ...}http #http块{ ... #http全局块 server #server块 { ... #server全局块 location [PATTERN] #location块 { ... } location [PATTERN] { ... } } server { ... } ... #http全局块}

1、全局块:配置影响nginx全局的指令。

一般有:运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

2、events块:配置影响nginx服务器或与用户的网络连接。

有:每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。5、location块:配置请求的路由,以及各种页面的处理情况。

下图具体标示具体的文件结构


Demo

下面给大家上一个配置文件,作为理解。



上面是nginx的基本配置,需要注意的有以下几点:

1、几个常见配置项:

1.$remote_addr 与 $http_x_forwarded_for 用以记录客户端的ip地址;2.$remote_user :用来记录客户端用户名称;3.$time_local : 用来记录访问时间与时区;4.$request : 用来记录请求的url与http协议;5.$status : 用来记录请求状态;成功是200;6.$body_bytes_s ent :记录发送给客户端文件主体内容大小;7.$http_referer :用来记录从那个页面链接访问过来的;8.$http_user_agent :记录客户端浏览器的相关信息;

2、惊群现象:

一个网路连接到来,多个睡眠的进程被同事叫醒,但只有一个进程能获得链接,这样会影响系统性能。

3、每个指令必须有分号结束。


前言

在多个应用实例间做负载均衡是一个被广泛使用的技术,用于优化资源效率,最大化吞吐量,减少延迟和容错。

nginx可以作为一个非常高效的HTTP负载均衡器来分发请求到多个应用服务器,并提高web应用的性能,可扩展性和可靠性。

1、负载均衡方法

nginx支持以下负载均衡机制(或者方法):

round-robin/轮询: 到应用服务器的请求以round-robin/轮询的方式被分发;least-connected/最少连接:下一个请求将被分派到活动连接数量最少的服务器;ip-hash/IP散列: 使用hash算法来决定下一个请求要选择哪个服务器(基于客户端IP地址);1.1、默认负载均衡配置(轮询)

nginx中最简单的负载均衡配置看上去大体如下:

http {

upstream myapp1 {

server srv1.example.com;

server srv2.example.com;

server srv3.example.com;

}

server {

listen 80;

location / {

proxy_pass http://myapp1;

}

}

}

在上面的例子中, 同一个应用有3个实例分别运行在srv1、srv2、srv3。当没有特别指定负载均衡方法时, 默认为round-robin/轮询。所有请求被代理到服务器集群myapp1, 然后nginx实现HTTP负载均衡来分发请求。

nginx中反向代理的实现包括HTTP, HTTPS, FastCGI, uwsgi, SCGI, 和 memcached的负载均衡。

要配置负载均衡用HTTPS替代HTTP,只要使用”https”作为协议即可。

为FastCGI, uwsgi, SCGI, 或 memcached 搭建负载均衡时, 只要使用相应的fastcgi_pass, uwsgi_pass, scgi_pass, 和 memcached_pass指令。

1.2、最少连接负载均衡(least-connected/最少连接)

另一个负载均衡方式是least-connected/最少连接。当某些请求需要更长时间来完成时,最少连接可以更公平的控制应用实例上的负载。

使用最少连接负载均衡时,nginx试图尽量不给已经很忙的应用服务器增加过度的请求, 而是分配新请求到不是那么忙的服务器实例。

nginx中通过在服务器集群配置中使用least_conn指令来激活最少连接负载均衡方法:

upstream myapp1 {

least_conn;

server srv1.example.com;

server srv2.example.com;

server srv3.example.com;

}

1.3、会话持久化(ip-hash)

请注意,在轮询最少连接负载均衡方法中,每个客户端的后续请求被分派到不同的服务器。对于同一个客户端没有任何方式保证发送给同一个服务器。

如果需要将一个客户端绑定给某个特定的应用服务器——用另一句话说,将客户端会话”沾住”或者”持久化”,以便总是能选择特定服务器,那么可以使用ip-hash负载均衡机制。

使用ip-hash时,客户端IP地址作为hash key使用,用来决策选择服务器集群中的哪个服务器来处理这个客户端的请求。这个方法保证从同一个客户端发起的请求总是定向到同一台服务器,除非服务器不可用。

要配置使用ip-hash负载均衡,只要在服务器集群配置中使用ip_hash指令:

upstream myapp1 {

ip_hash;

server srv1.example.com;

server srv2.example.com;

server srv3.example.com;

}

2、带权重的负载均衡

可以通过使用服务器权重来影响nginx的负载均衡算法。

在上面的例子中,服务器权重没有配置,这意味着所有列出的服务器被认为对于具体的负载均衡方法是完全平等的。

特别是轮询,分派给服务器的请求被认为是大体相当的。假设有足够的请求,并且这些请求被以同样的方式处理而且完成的足够快。

当服务器被指定weight/权重参数时,负载均衡决策会考虑权重。如下所示

upstream myapp1 {

server srv1.example.com weight=3;

server srv2.example.com;

server srv3.example.com;

}

在上面的这个配置中,假设有5个新的请求。那么每5个新请求将会如下的在应用实例中分派:

3个请求分派去srv1,一个去srv2,另外一个去srv3.

在最近的nginx版本中,可以类似的在最少连接和IP哈希负载均衡中使用权重。

  • 分数除以分数怎么算(分数除以分数数学算法这样算)
  • 2024-11-22分数除以分数数学算法这样算一个分数除以另一个分数就是乘以这个分数的倒数分数除法的意义:与整数除法的意义相同,都是已知两个因数的积与其中一个因数求另一个因数被除数分子乘除数分母,被除数分母乘除数分子分数除法应用题:先找单位1单位。
  • 入选第二批国家森林乡村名单(第二批国家森林乡村名单公布)
  • 2024-11-22第二批国家森林乡村名单公布近日,国家林业和草原局最新发布《关于公布第二批国家森林乡村名单的通知》在各地县级林业和草原主管部门推荐、省级林业和草原主管部门评审公示的基础上,经审查评价认定了第二批3639个国家森林乡村湖南211个。
  • 电脑黑屏怎么办有代码(富德告诉你电脑黑屏怎么办)
  • 2024-11-22富德告诉你电脑黑屏怎么办电脑每次开机都会有许多信息一闪而过,那些都是电脑主板进行自检保证电脑顺利启动的必要程序,当电脑出现故障时,主板自检将不会通过电脑也无法开机此时主板会将故障的关键字告诉我们,这就是电脑黑屏时的英文说明,。
  • 什么东西消暑解渴(脆嫩多汁消暑解渴)
  • 2024-11-22脆嫩多汁消暑解渴这个东西刚寄来公司的时候,差点引起了一场“南北争斗”(本文由有物:yowooa原创,转载请注明出处)那天,公司来了几个红润饱满的小胖墩儿我一揭开盖儿,实为惊叹大呼小叫“哎,这是啥呀?啥呀?好漂亮的水果。
  • 父爱的句子唯美简短(如何表达父爱)
  • 2024-11-22如何表达父爱父亲不需要用多好的语言来赞美他,像一头任劳任怨的牛!父亲期望儿子比自己更加无可指责,这是无可指责的只生不养的母亲不是真正的母亲人最终总要离开母亲父亲是一位现实主义诗人,每天面对土地,不停地播种,耕耘,。
  • 越狱第五季迈克尔又复活了(越狱第五季让迈克尔起死回生)
  • 2024-11-22越狱第五季让迈克尔起死回生文|刘起漫长的八年后,《越狱》出人意料的再度回归豆瓣上,观众打出了9.3的高分有人说是情怀分,可是,《越狱》就是我们的美剧初恋啊我们大部分人,不都是被《越狱》启蒙,从此头也不回的走上美剧这条路吗?《越。
  • 鼻窦炎是怎么引起的会不会自愈(鼻窦炎不是小病)
  • 2024-11-22鼻窦炎不是小病家住小河区的林先生今年30岁,长期受到鼻炎的困扰两年前,接受了鼻息肉摘除手术但是近期,林先生出现了鼻塞、头胀昏沉、嗅觉迟钝等症状,于是林先生在朋友的介绍下来到了贵阳铭仁耳鼻喉医院检查接诊的医生,经过鼻。
  • 火影忍者ol官网手游(最原汁原味的木叶忍者)
  • 2024-11-22最原汁原味的木叶忍者喜欢火影忍者么?好的,现在火影忍者正版授权的手游来了!《火影忍者OL》是由万代南梦宫和腾讯魔方工作室共同打造的大世界高自由回合策略RPG手游在游戏中,玩家可扮演各具特色的“风”“雷”“水”“土”“火”。
  • 昆山吾悦广场招商(9.28昆山吾悦广场盛大启幕)
  • 2024-11-229.28昆山吾悦广场盛大启幕——首日客流23.9万,销售突破1370万9月28日,注定是一个不平凡的日子,在鞭炮齐鸣慷慨激昂的的鼓乐声中,昆山吾悦广场盛妆启幕!昆山吾悦广场集零售、亲子、餐饮、休闲娱乐于一体,她的出现不仅丰富了昆。
  • 女生自我介绍幽默大气(怎样介绍自己的优缺点)
  • 2024-11-22怎样介绍自己的优缺点首先,面试要看对象看准对象并不是要你察言观色、看风使舵看对象是要求你看准你期望供职的单位对人才素质要求有什么特点,然后有的放矢地介绍自己的情况如果单位是政府机关,那么必然看重的是学生的政治修养以及深含。