Nginx 学习笔记

Nginx 学习笔记

1.Nginx 的简介

Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50000 个并发连接数。

Nginx有以下特征:

  • 正向代理
  • 反向代理
  • 动静分离

1.1正向代理

需要在客户端配置代理服务器进行指定网站访问
在这里插入图片描述

1.2反向代理

暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
在这里插入图片描述
在这里插入图片描述

1.3负载均衡

增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。
在这里插入图片描述
在这里插入图片描述

1.4动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。
在这里插入图片描述在这里插入图片描述

1.5Nginx的安装

安装nginx前首先安装四个依赖包 --以下命令一键安装四个依赖

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

等待自动安装完成后,进入/usr/src目录下

在这里插入图片描述
将下载好的文件,放入/usr/src下
在这里插入图片描述
解压文件

tar -zxvf nginx -1.23.1.tar.gz

在这里插入图片描述进入刚刚解压好的目录

cd nginx-1.23.1

分别执行下面命令

./configure        --- 用来检测安装平台的目标特征
make                  --- 用来编译( 从Makefile中读取指令,然后编译)
make install        --- 用来安装( 从Makefile中读取指令,安装到指定的位置)

把防火墙关闭,或者允许8080端口访问。

systemctl status firewalld //查看防火墙的状态
systemctl stop firewalld.service //关闭防火墙

编辑启动端口(图片的端口是经过修改的,默认是80端口)


cd /usr/local/nginx/conf
 
vim nginx.conf
 
编辑好之后,按esc退出编辑模式,然后  :wq 进行保存退出

在这里插入图片描述启动nginx

cd /usr/local/nginx/sbin
./nginx

查看进程的运行状态
在这里插入图片描述访问ip地址:端口,验证是否成功
在这里插入图片描述

在这里插入图片描述

1.6Nginx的常用命令

使用nginx操作命令前提条件:必须进入nginx目录下

/usr/local/nginx/sbin

1、查看nginx的版本号

./nginx -v

在这里插入图片描述

2、启动 nginx

./nginx

在这里插入图片描述

3、停止 nginx

./nginx	-s	stop

在这里插入图片描述

4、重新加载 nginx

./nginx -s reload

1.7Nginx的配置文件

1.7.1配置文件的位置

cd /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

1.7.2包含三部分内容

在这里插入图片描述在这里插入图片描述

(1)全局块:配置服务器整体运行的配置指令比如 worker_processes 1;处理并发数的配置

(2)events块:影响 Nginx 服务器与用户的网络连接比如 worker_connections 1024; 支持的最大连接数为 1024

(3)http 块(包含两部分):

  • http 全局块
  • server 块

http 全局块
http 全局块配置的指令包括文件引入、 MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等

server 块
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和单一独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。

每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。

而每个 server 块也分为:

全局 server 块,
多个 locaton 块。
全局 server 块
最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置。

location 块
一个 server 块可以配置多个 location 块。

这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。

地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

1.9配置反向代理的环境

1.9.1在Linux环境下安装tomcat服务器

我这里已经安装好了,具体流程可以看我这篇文章
https://blog.csdn.net/qq_52166656/article/details/126613657

1.9.2在windows下面配置映射的路径

在这里插入图片描述

在这里插入图片描述如果访问不了有防火墙记得去开启指定端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent

1.8Nginx 配置实例-反向代理实例 1

按照上面通过域名映射ip地址就可以启动tomcat服务器了。
在这里插入图片描述
接着在 nginx 进行请求转发的配置(反向代理配置)
修改目录/usr/local/nginx/conf/下编辑nginx.conf配置文件在这里插入图片描述最后启动 nginx,浏览器地址栏输入 www.123.com,验证页面是否跳转到 Tomcat 的页面。若能跳到 Tomcat 的页面,表示 ngnix 反向代理配置成功。

1.9Nginx 配置实例-反向代理实例 2

1、实现效果

使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中

nginx 监听端口为 9001
访问 http://192.168.200.130:9001/school/ 直接跳转到 127.0.0.1:8080
访问 http:// 192.168.200.130:9001/student/ 直接跳转到 127.0.0.1:8081

首先准备两台tomcat服务器,我在opt目录下创建文件夹,随后开启两台服务器端口号分别为8080与8081
在这里插入图片描述
在tomcat8081文件夹webapp目录下创建文件夹
在这里插入图片描述里面内容随意

同理在tomcat8080文件夹webapp目录下创建文件夹

在这里插入图片描述
里面内容随意
具体配置

找到 nginx 配置文件,进行反向代理配置
在这里插入图片描述开放对外访问的端口号 9001 8080 8081
查看端口
记得开放这几个端口,都是需要用到的
在这里插入图片描述最终测试
在这里插入图片描述

在这里插入图片描述

2.0Nginx 配置实例-负载均衡

浏览器地址栏输入地址 http://127.0.0.1/helloworld,负载均衡效果,平均 8081 和 8082 端口中。

2.0.1准备工作

准备两台 tomcat 服务器,一台 8080,一台 8081。
在两台 tomcat 里面 webapps 目录中,创建名称是 helloworld 简单应用。

2.0.2修改配置文件

在 Nginx 的配置文件中进行负载均衡的配置
在这里插入图片描述随后在两个tomcat的webapp目录下建立相同的文件,意思就是我要去访问这个路径分散给不同的服务器,减小压力
在这里插入图片描述

在这里插入图片描述

访问测试
在这里插入图片描述在这里插入图片描述

2.0.3负载均衡分配策略

负载均衡(load balance)即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。

快速增长的访问量和数据流量催生了各式各样的负载均衡产品,很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎,nginx 就是其中的一个,在 linux 下有 Nginx、 LVS、 Haproxy 等等服务可以提供负载均衡服务,而且 Nginx 提供了几种分配方式 (策略)

轮询
这是 Ngnix 负载均衡默认分配策略。每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

加权
weight 代表权,重默认为 1,权重越高被分配的客户端越多。指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。例如:

upstream myserver{
	server 127.0.0.1:8081 weight=8;
	server 127.0.0.1:8082 weight=2;
}
ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。 例如:

upstream myserver{
	ip_hash;
	server 127.0.0.1:8081;
	server 127.0.0.1:8082;
}

fair 这是 Ngnix 负载均衡第三方分配策略。按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream myserver{
	server 127.0.0.1:8081;
	server 127.0.0.1:8082;
	fair;
}

可能需要额外安装,否则就抛出异常 [emerg] 7032#7120: unknown directive “fair” in C:\nginx-1.18.0/conf/nginx.conf:38。

2.1Nginx 配置实例(动静分离准备工作)

2.1.1什么是动静分离?

在这里插入图片描述通过 location 指定不同的后缀名实现不同的请求转发。通过 expires 参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires 定义:是给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件,

不建议使用 Expires 来缓存),我这里设置 3d,表示在这 3 天之内访问这个 URL,发送一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码 304,如果有修改,则直接从服务器重新下载,返回状态码 200。

2.1.2准备工作

(1)在 liunx 系统中准备静态资源,用于进行访问我在根目录下建立date文件夹里面有www和image文件夹
www文件夹中内容为一个网页
iamge文件夹中的内容为一张图片
在这里插入图片描述

2.1.3具体配置

(1)在 nginx 配置文件中进行配置
在这里插入图片描述

2.1.4最终测试

(1)浏览器中输入地址
在这里插入图片描述
在这里插入图片描述

2.2Nginx 的原理

2.2.1mater 和 worker

在这里插入图片描述
在这里插入图片描述

2.2.2worker 如何进行工作的

在这里插入图片描述

2.2.3一个 master 和多个 woker 有好处

(1)可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作

(2)每个 woker 是独立的进程,如果有其中的一个 woker 出现问题,其他 woker 独立的,继续进行争抢,实现请求过程,不会造成服务中断

2.2.4设置多少个 woker 合适

worker 数和服务器的 cpu 数相等是最为适宜的

2.2.5连接数 worker_connection

第一个:发送请求,占用了 woker 的几个连接数?

答案:2 或者 4 个

第二个:nginx 有一个 master,有四个 woker,每个 woker 支持最大的连接数 1024,支持的最大并发数是多少?
普通的静态访问最大并发数是: worker_connections * worker_processes /2,

而如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections * worker_processes/4。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值