nginx高性能web服务器详解(搭建一个web服务器)

1、Nginx简介

1.1、Nginx概念及作用

概念:Nginx是高性能的HTTP和反向代理的web服务器,特点是占有内存少,由于它处理高并发能力非常强大,常用于高并发场景,能经受高负载的考验。

Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。

1.2、正向代理

我们需要在客户端配置代理服务器,此时将代理服务器和客户端看成一个客户端,这样服务器就不知道是哪个客户端发送的请求,通过代理服务器进行访问,这就是正向代理

Nginx学习笔记详解:反向代理,负载均衡,动静分离

反向代理服务器和目标服务器对外就是一个服务器,所以我们需要把它们看成一个服务端,暴露的是代理服务器 IP 地址,隐藏了真实服务器 IP 地址,这样客户端就不知道请求最后到底发送给哪台服务器

Nginx学习笔记详解:反向代理,负载均衡,动静分离

Nginx学习笔记详解:反向代理,负载均衡,动静分离

Nginx学习笔记详解:反向代理,负载均衡,动静分离

注意:使用Nginx操作命令前提,必须进入到Nginx目录 /usr/local/nginx/sbin

常用命令:

  1. 查看Nginx版本号:./nginx -v
Nginx学习笔记详解:反向代理,负载均衡,动静分离

Nginx学习笔记详解:反向代理,负载均衡,动静分离

Nginx学习笔记详解:反向代理,负载均衡,动静分离

Nginx学习笔记详解:反向代理,负载均衡,动静分离

Nginx学习笔记详解:反向代理,负载均衡,动静分离

  1. 全局块

从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令

比如:worker_processes 1

这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约

2.events块

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接

比如:worker_connections 1024

表示每个 work process 支持的最大连接数为 1024这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

3.http块

Nginx学习笔记详解:反向代理,负载均衡,动静分离需要注意的是:http 块也可以包括 http 全局块、server 块。

4、Nginx配置实例

4.1、反向代理

4.1.1、反向代理准备工作

实现效果:

打开浏览器,输入地址www.123.com,跳转到Linux系统上的Tomcat主页面

注意:进行案例演示之前,请确保Linux上已经安装Nginx和Tomcat!

  1. 进入到tomcat的bin目录中,输入命令启动服务器:./startup.sh
  2. 对外开放访问的端口:firewall-cmd –add-port=8080/tcp –permanent
  3. 重启防火墙:firewall-cmd –reload
  4. 在window系统中通过浏览器访问tomcat服务器
Nginx学习笔记详解:反向代理,负载均衡,动静分离

Nginx学习笔记详解:反向代理,负载均衡,动静分离

Nginx学习笔记详解:反向代理,负载均衡,动静分离

4.1.3、反向代理实例(二)

实现效果:

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

nginx 监听端口为 9001 访问

http://192.168.50.128:9001/edu/a.html 直接跳转到 127.0.0.1:8080

http://192.168.50.128:9001/vod/a.html 直接跳转到 127.0.0.1:8081

  1. 在/usr/src目录下创建两个文件夹分别是:tomcat8080,tomcat8081,将tomcat压缩包分别拖入到两个文件夹中,并解压:tar -xvf apache-tomcat-7.0.70.tar.gz,解压完成后启动两个tomcat
  2. 分别在两个tomcat中的webapps目录下存放edu文件和vod文件,文件夹下分别存放两个html页面,用于测试
  3. 找到nginx配置文件,进行方向代理配置
Nginx学习笔记详解:反向代理,负载均衡,动静分离

firewall-cmd --add-port=端口号/tcp --permanent

5.进行测试

4.2、负载均衡

实现效果:浏览器输入http://192.168.50.128/edu/a.html,负载均衡效果,将请求轮询形式转发到8080,8081端口

  1. 准备两台tomcat服务器,一台是8080,另一台是8081
  2. 在两台tomcat的webapps目录中,分别创建edu文件夹,在edu中放入a.html文件
  3. 在nginx配置文件中的http块进行负载均衡的配置
Nginx学习笔记详解:反向代理,负载均衡,动静分离Nginx 提供了几种分配方式(策略):

1.轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

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

Nginx学习笔记详解:反向代理,负载均衡,动静分离

Nginx学习笔记详解:反向代理,负载均衡,动静分离

Nginx学习笔记详解:反向代理,负载均衡,动静分离

4.3.1、动静分离准备工作

在Linux系统根目录中创建data文件夹,文件夹中存放两个文件夹分别为:

  1. www
  2. image
  3. 在www中放入a.html文件,在image文件夹中放入01.jpg图片

4.3.2、动静分离实例

  1. nginx配置文件中进行配置
Nginx学习笔记详解:反向代理,负载均衡,动静分离3.最终进行测试

在浏览器中输入地址:http://192.168.50.128/image/01.jpg

Nginx学习笔记详解:反向代理,负载均衡,动静分离

Nginx学习笔记详解:反向代理,负载均衡,动静分离

5、Nginx工作原理解析

1.master & worker

Nginx学习笔记详解:反向代理,负载均衡,动静分离

Nginx学习笔记详解:反向代理,负载均衡,动静分离(1)可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作(2)每个 woker是独立的进程,如果有其中的一个 woker 出现问题,其他 woker 独立的,继续进行争抢,实现请求过程,不会造成服务中断

4.设置多少个 woker 合适?

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

5.连接数 worker_connection

第一个:发送请求,占用了 woker 的几个连接数?答案:2 或者 4 个

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

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

Nginx学习笔记详解:反向代理,负载均衡,动静分离

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 ivillcn@qq.com 举报,一经查实,本站将立刻删除。文章链接:https://www.shangraobbs.com/n/2995.html

(0)
上一篇 2023年11月19日 上午10:25
下一篇 2023年11月19日 上午10:26

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注