nginx简介

1什么是nginx

Nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强
Nginx专门为性能优化而开发,性能是其最重要的考量,事实上非常注重效率,能经受高负载的考验,有报告称能承受50000的并发连接数

2反向代理

(1)正向代理
在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问
image.png
(2)反向代理
我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址
image.png

3负载均衡

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

4动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。
image.png

nginx的安装

1用远程连接工具连接linux操作系统

image.png

2nginx相关素材(依赖)

image.png
(1)安装pcre依赖

  • 把安装压缩文件放到linux系统中
  • 解压压缩文件 (tar -xvf pcre的包名)
  • 进入解压缩目录,执行 ./configure
  • 使用 make&&make install(把文件编译 安装)
  • 安装后,使用命令,查看版本号,pcre-config —version

(2)安装其他的依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
(3)安装nginx

  • 把安装压缩文件放到linux系统中
  • 解压压缩文件 (tar -xvf nginx的包名)
  • 进入解压缩目录,执行 ./configure
  • 使用 make&&make install(把文件编译 安装)

安装成功后,在/user/local中多一个nginx的文件夹,里面的sbin中有启动脚本

启动时遇到报错
解决: https://blog.csdn.net/weixin_44297303/article/details/89505398

登录网页无法连接
解决:关闭防火墙
https://blog.csdn.net/baidu_36124158/article/details/90603496
image.png
或者修改防火墙规则:

  • 查看开放的端口

    firewall-cmd —list-all

  • 设置开放的端口号

    firewall-cmd —add-service=http -permanent
    sudo firewall-cmd —add-port=80/tcp —permanent

  • 重启防火墙

    firewall-cmd -reload

nginx操作中常用命令

1使用nginx命令的前提是必须进入 nginx目录

/usr/local/nginx/sbin

2查看nginx版本号

image.png

3启动


(查看当前nginx状态 ps -ef | grep nginx )
image.png

4关闭

./nginx -s stop
image.png

5重新加载

./nginx -s reload

nginx配置文件

1nginx配置文件位置

/usr/local/nginx/conf/nginx.conf
image.png

2nginx配置文件组成

(1)nginx配置文件由三部分组成
第一部分 全局快
从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置指令
比如 work_processes 1; work_processes的值越大,可以支持的并发处理量也越多
第二部分 events块
events块主涉及的指令主要影响Nginx服务器和用户网络的连接
比如 worker_connections 1024; 支持的最大连接数 对性能影响较大,实际使用中应灵活配置

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

Nginx配置实例—反向代理

1实现效果

(1)打开浏览器,在浏览器中输入www.123.com ,跳转linux系统tomcat主页面中

2准备工作

(1)在linux系统中安装tomcat,使用默认端口8080

  • 把安装压缩文件放到linux系统中
  • 解压压缩文件 (tar -xvf nginx的包名)
  • 进入tomcat的bin目录,执行./startup.sh启动tomcat服务器

    (2)修改端口访问规则

    sudo firewall-cmd —add-port=8080/tcp —permanent firewall-cmd -reload

查看开放的端口

firewall-cmd —list-all

(3)在windows系统中通过浏览器访问tomcat
image.png

3访问过程的分析

image.png

4具体配置

第一步

在windows系统的host文件中进行域名和ip对应关系的配置
image.png
添加内容在host文件中: 192.168.159.128 www.123.com
image.png

第二步

在nginx进行请求转发的配置(反向代理配置)
image.png

5效果测试

image.png

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

1实现效果

image.png

2准备工作

1准备两个tomcat服务器,一个8080端口 一个8081端口

2创建文件夹和测试页面

3具体配置

1找到nginx配置文件,进行反向代理配置

image.png

2开放对外访问的端口号

4最终测试

image.png

image.png
image.png

Nginx配置实例-负载均衡

1实现效果

1浏览器地址栏输入http://192.168.159.128/edu/a.htnl,实现负载均衡效果,将请求平均到8080和8081端口中

2准备工作

1准备两台tomcat服务器,一台8080,一台8081

2 在两台tomcat的webapps目录中,创建名称是edu的文件夹,在edu文件夹中创建页面a.html,同于测试

image.png

3在nginx的配置文件中进行负载均衡的配置

image.png

4nginx分配服务器的策略

  • 轮询(默认):每个请求按时间顺序注意分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
  • weight :代表权重,默认为1,权重越高,呗分配的客户越多 指定轮询几率,weight和访问率成正比,用于后端服务器性能不均的情况
  • ip_hash :每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题
  • fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配

Nginx配置示例-动静分离

1什么是动静分离

image.png

image.png

2准备工作

1在linux中中北静态资源,用于进行访问

image.png

3具体配置

1在nginx配置文件中进行配置

image.png

4最终测试

1浏览器中输入地址

http://192.168.159.128/image/a.jpg
因为配置文件 autoindex on(列出当前文件夹中的内容)
image.png

image.png

Nginx配置高可用的集群

1什么是高可用集群

image.png

需要两台nginx服务器
需要keeplived
需要虚拟ip

2配置高可用的准备工作

1需要两台服务器

3在两台服务器安装keepalived

1使用yum命令安装 yum install keepalived -y

2安装后,在etc目录里生成目录keepalived。有文件keepalived.conf

4完成高可用配置(主从配置)

1修改/etc/keepalived/keepalived.conf配置文件

image.png

image.png

2在/use/local/src 添加检测脚本

image.png

3启动两台服务器的nginx和keepalived

启动keepalived:systemctl start keepalived.service
image.png

Nginx的原理

1maste和worker

image.png

2worker如何进行工作的

image.pngimage.png

3一个master和多个worker有什么好处

1可以使用nginx -s reload 热部署

image.png

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

4设置多少个worker合适

worker数和服务器的cpu数相等时最适宜的
image.png

5连接数 worker connection

image.png

  • 第一个:发送请求,占用worker的几个连接数 2或4个
  • 第二个:nginx有一个master,四个worker,每个worker支持的最大连接数据1024,支持的最大并发数时:

image.png