Nginx概念总结(负载均衡动静分离)

Posted 崇尚学技术的科班人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx概念总结(负载均衡动静分离)相关的知识,希望对你有一定的参考价值。

1、nginx简介和基本概念

1.1、什么是nignx?

  • Nginx是一款轻量级的Web 服务器/反方向的代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
  • Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。

1.2、负载均衡

(1)、低并发情况下

  • 客户端向服务器发送请求,服务器从数据库中查询数据,查出数据后将数据进行返回。然后服务器向服务器响应。

(2)、高并发情况下

在高并发情况下,单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡

  • NGINX会将请求进行均分然后分发给各个服务器。

1.3、动静分离

为了加快网站的解析速度,可以把动态资源和静态资源存放在不同的服务器中,从而加快解析速度。降低原来单个服务器的压力。

  • 当请求被NGINX代理服务器接受的时候,如果是动态资源请求的话,会被分发到动态资源存放的服务器;如果是静态资源请求的话,就会被分发到静态资源存放的服务器。从而减轻了服务器的压力,加快解析速度

2、nginx的安装

nginx下载地址http://nginx.org/en/download.html

2.1、安装相应的依赖

(1)、安装pcre依赖

  1. 通过Xshell连接上虚拟机上Linux系统。
  2. 把安装压缩文件放到linux系统中。
  3. 解压压缩文件
  4. 进入解压之后目录,执行./configure进行检查。
  5. 使用make && make install进行安装。
  6. 安装之后,使用命令查看版本号 pcre-config --version

(2)、安装其它依赖

通过yum命令进行安装。

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

2.2、安装nginx

  1. 通过Xshell连接上虚拟机上Linux系统。
  2. 把安装压缩文件放到linux系统中。
  3. 解压压缩文件
  4. 进入解压之后目录,执行./configure进行检查。
  5. 使用make && make install进行安装。

2.3、安装成功之后

1. 安装成功的现象

你会在 /usr/local/目录下看到一个nginx目录。

2. 启动nginx的方法

/usr/local/nginx/sbin/目录下有一个名为nginx的脚本。我们使用./nginx进行启动。

3. 对其进行访问

  • 其默认是在80端口进行开启

2.4、对端口号进行开放

  • 由于linux系统中含有防火墙。我们需要对相关端口号进行开放。
# 查看开放的端口号
firewall-cmd --list-all

# 设置开放的端口号
firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=8001/top --permanent

# 重启防火墙
firewall-cmd --reload

3、nginx操作的常用命令

  • 使用nginx操作命令的前提条件:必须进入nginx的目录 /usr/local/nginx/sbin

1. 查看nginx的版本号

./nginx -v

2. 启动nginx

./nginx

3. 关闭nginx

./nginx -s stop

4. 重新加载nginx

./nginx -s reload
  • 使用场景:如果我们修改了配置文件,但又不想重启。我们可以使用重新加载。

4、nginx的配置文件

4.1、配置文件的所在位置

  • 所在位置:/usr/local/nginx/conf
  • 配置文件名称为:nginx.conf

4.2、全局块

  • 从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令
# worker_processes 值越大,可以支持的并发处理量也越多。
worker_processes 1;

4.3、events块

  • events块涉及的指令主要影响nginx服务器与用户的网络连接
# 支持的最大连接数
worker_connections  1024;

4.4、http块

  • 这是nginx服务器中配置最为频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
  • 它包括http全局块和server块。

4.4.1、 http全局块

  • 此模块的指令包含了文件引入、MIME-TYPE定义、日志自定义、连接超时时间、单连接请求数上限。

4.4.2、 server块

  • 这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本 。
  • 每个 http 块可以包括多个 server块,而每个 server 块就相当于一个虚拟主机
  • 而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块

1. 全局server块

  • 最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置

2. location块

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

  • 这块的主要作用是基于 Nginx 服务器接收到的请求字符串,对虚拟主机名称(也可以是 IP 别名)之外的字符串进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

以上是关于Nginx概念总结(负载均衡动静分离)的主要内容,如果未能解决你的问题,请参考以下文章

Nginx配置一套打通:基本概念命令反向代理负载均衡动静分离高可用

Resin+Nginx动静分离和负载均衡

Nginx+Tomcat 负载均衡(动静分离)集群

Nginx 和 IIS 实现动静分离转载

Nginx + Tomcat 实现 负载均衡 和 动静分离群集

图文详解 配置Nginx+Tomcat负载均衡动静分离集群