nginx配置文件的介绍---反向代理--负载均衡--动静分离--nginx的高可用

3,888 阅读4分钟

nginx配置文件介绍

image.png

image.png

自定义server访问

创建一个目录main,并且在该目录下创建一个main.html

image.png

注意:你修改了nginx配置文件,必须重新加载配置文件

./nginx -s reload

一个nginx对应多个server

nginx的反向代理

正向代理:

是一种典型的代理服务器配置,用于代表客户端向互联网上的服务器发送请求。在正向代理中,客户端通过与正向代理服务器进行通信,请求访问互联网资源。代理服务器会将客户端的请求转发给目标服务器,并将目标服务器的响应返回给客户端。

正向代理常见的使用场景包括:

  1. 匿名访问:通过正向代理服务器,客户端可以隐藏其真实的IP地址和身份,实现匿名访问互联网资源。
  2. 访问限制:一些网络环境可能存在访问限制,例如公司、学校等。通过正向代理,绕过这些限制,访问被禁止的网站或资源。
  3. 缓存加速:正向代理服务器可以缓存已经访问过的资源,提高后续访问相同资源的速度。
  4. 安全防护:正向代理可以充当防火墙,过滤请求,提供安全保护,防止攻击和恶意访问。

总的来说,正向代理允许客户端通过代理服务器访问互联网,并提供了一些额外的功能和安全保护。代理的客户端,对于服务器来说不知道真实的客户

反向代理

反向代理就是对于客户端来说,发送一个请求至代理服务端,而此刻的客户端只知道代理服务器的ip地址,并不知道真正的应用服务器地址,而处理真正的业务则需要应用服务端才行,简单来说就是:反向代理隐藏了真实的服务端,对于客户来说不知道访问的是哪台服务器。

image.png

如何实现反向代理

1.搞一台真实服务器----tomcat项目。----搞一个springboot项目并放入linux服务器系统

image.png

2.运行springboot项目

java -jar 包名

3.配置nginx来代理springboot真实项目服务

image.png

重新加载nginx配置文件

sbin/nginx -s reload

4.浏览器访问nginx

image.png

负载均衡

配合反向代理+负载均衡

image.png

1.准备两台真实服务器

image.png

2.nginx重新加载配置文件

sbin/nginx -s reload

3.浏览器访问nginx

image.png

负载均衡的策略种类

轮询策略

轮询策略是一种实现简单,却很常用的负载均衡策略,核心思想是服务器轮流处理用户请求,以尽可能使每个服务器处理的请求数相同。

权重策略

给服务器设置权重并遵循轮询的模式

image.png

ip_hash策略

负载均衡策略,它根据客户端的IP地址来哈希分配请求到不同的后端服务器。 这样能够确保相同客户端的请求总是被分配到同一台后端服务器上,这样可以确保每个客户端的session状态和数据是独立的。

image.png

使用第三方策略插件

动静分离

image.png

把静态资源[css,js,img]交于nginx来处理,而动态资源[接口,jsp]还是有真实服务器处理

好处: 当修改静态资源时,无需对每个真实服务器的静态资源做修改,只需要修改nginx一处的静态资源。

1.创建一个springboot项目

image.png

2.配置视图解析器

image.png

3.编写静态资源和接口

image.png

4.将静态资源提取出来放到nginx中

image.png

5.修改nginx配置文件

image.png

6.将非静态资源部署到服务器中

image.png

7.测试静态资源是否正常

image.png

nginx的高可用

image.png

准备服务器

1.准备两台服务器

ip地址分别为192.168.94.134 192.168.94.131

2.在每一个nginx服务器上安装keepalived

yum install keepalived 安装keepalived

rpm -q -a keepalived 检查是否安装keepalived

默认安装路径: /etc/keepalived

3.修改keepalived的配置内容

自带的keepalived的配置文件很多无用配置,则需要我们自己手动编写,并且替换原来自带的配置文件

image.png

以上配置文件会导致脚本命令不执行,下方图片的会修复脚本命令不执行的问题,请结合使用

注意,测试的时候关闭防火墙,否则会导致切换到从节点之后,无法切换到主节点

image.png

4.nginx_check.sh脚本文件

分别在两台服务器上指定目录下编写脚本文件

image.png

5.分别启动---keepalived

启动keepalived服务 systemctl start keepalived

重启keepalived服务 systemctl restart keepalived

停止keepalived服务 systemctl stop keepalived

开启两台nginx服务并访问虚拟ip

image.png

如果无法访问,检查防火墙端口是否放行