深入理解NGINX(Nginx学习进阶)
深入理解NGINX(Nginx学习进阶)
2024-09-27 08:49:44  作者:醉过痛过  网址:https://m.xinb2b.cn/tech/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-09-27拔罐颜色越深毒中国人有多喜欢拔罐?每当夏天走在街上,你很容易能看到人们身上隐约可见的拔罐印迹...不论医院还是美容店,很多人都有过拔罐的经历...每个人拔完罐的样子也各有不同有大有小、有多有少、有深有浅,宛如一副『。
  • 烘焙原料常识(烘焙材料购买的2大要素)
  • 2024-09-27烘焙材料购买的2大要素一、糖类糖是烘焙中不可或缺的重要材料也许有人会问:放糖不就是会甜嘛,我怕胖,能不能少放点呢?然而烘焙的配方不能随意减糖,更不能完全不放糖因为糖除了调味,还有帮助面糊吸水、保持成品的柔软、帮助表皮上色、。
  • 木兰诗第四季02(木兰诗教与学02)
  • 2024-09-27木兰诗教与学02将军百战死,壮士十年归《木兰诗》课文解析整体把握《木兰诗》是我国南北朝时期北方的一首长篇叙事民歌,记述了木兰女扮男装,代父从军,征战沙场,凯旋回朝,建功受封,辞官还家的故事,充满传奇色彩开头两段,写木。
  • 养老金领取计算方法(养老金怎么领取)
  • 2024-09-27养老金怎么领取养老保险领取计算方法是:职工退休时上年度所在岗职工月平均工资与本人指数化月平均缴费工资之和的平均值(即两个数之和的一半)作为计发基数,缴费每满1年(含视同缴费年限,计算到月)发给1%用人单位应当按照国。
  • 关于勤俭节约的资料(勤俭节约的资料介绍)
  • 2024-09-27勤俭节约的资料介绍勤俭节约的意思是勤劳而节俭,形容工作勤劳,生活节俭出自路遥《平凡的世界》第五卷第一章:“因而形成了既敢山吃海喝,又能勤俭节约的双重生活方式”历史上有许多名人都有关于勤俭节约的感人小故事勤俭节约可以是,。
  • 锦绣南歌看点秦昊李沁造型(锦绣南歌船戏花絮)
  • 2024-09-27锦绣南歌船戏花絮《锦绣南歌》正在热播,收视率和口碑在一路直线上涨,有望成为2020年暑期的一部爆款电视剧《锦绣南歌》这部剧由李沁和秦昊联合主演,女主李沁是90新晋青年女演员,李沁一向很擅长拍摄古装剧,她在《庆余年》的。
  • 做生意为什么不能请财神(做生意与敬财神)
  • 2024-09-27做生意与敬财神货殖字典里“货殖”的解释是:经商营利,俗话就是做买卖或做生意货殖一词最早出自《论语•先进》“赐不受命而货殖焉”即指谋求滋生资货财利以致富而言,也就是利用货物的生产与交换,进行商业活动,从中生财求利司马。
  • 彼岸花的花语花叶永不相见 开一千年落一千年
  • 2024-09-27彼岸花的花语花叶永不相见 开一千年落一千年开一千年,落一千年,花叶永不相见—曼陀罗华“彼岸花”的传说红色曼陀罗华——曼珠沙华,又称彼岸花一般认为是生长在三途河边的接引之花而它生长的地方大多在田间小道,河边步道和墓地,所以别名也叫做死人花一到秋。
  • 高速爆胎前的征兆(死亡率极高的高速爆胎)
  • 2024-09-27死亡率极高的高速爆胎今天要和大家探讨一个严肃话题那就是“高速爆胎”相信这也是不少老司机在行车过程中最怕发生的事情据媒体统计报导重大交通事故中由爆胎引发的事故占35%而在高速意外事故中因爆胎引发的事故也有30%之多在高速上。
  • 美容院资本运作(唯美网获创东方数千万投资)
  • 2024-09-27唯美网获创东方数千万投资唯美网是以香港为总部的美容类垂直网站,成立于2014年12月唯美网只销售进口的美妆品牌,致力于经营美容行业的生态系统,让包括消费者、美容师、化妆品品牌方和其他人士在内的所有参与者,都享有成长或获益的机。
  • 一年一度舞龙舞狮闹元宵(提前剧透春节期间)
  • 2024-09-27提前剧透春节期间为营造街道浓厚的新春节日气氛让华阳老百姓过一个喜庆、健康、祥和、温暖的新年增强人民群众幸福感华阳街道将在新春佳节期间开展舞狮舞龙拜年、主题文艺汇演“非遗体验”活动元宵游园会等系列活动为辖区群众提供丰富。