一文教你Nginx反向代理部署,运维技能提升必备!

  概念说明

  什么是反向代理

  反向代理是一种代理服务器的配置模式,它代表服务器向客户端提供服务。客户端发送请求到反向代理服务器,然后反向代理服务器将请求转发到后端的真实服务器上,并将响应返回给客户端。简单理解为用户直接访问反向代理服务器就可以获得目标服务器的资源。这一过程叫反向代理

  功能介绍

  Nginx 可以作为反向代理服务器,接收客户端的请求,并将请求转发到后端的真实服务器上。通过反向代理,可以实现负载均衡、缓存加速、SSL 终端、安全过滤等功能。 「 负载均衡」:Nginx 可以通过反向代理实现负载均衡,将请求分发到多个后端服务器上,从而提高系统的并发处理能力和可用性。常见的负载均衡算法有轮询、IP 哈希、最少连接等。 「 缓存加速 」:Nginx 可以缓存静态资源或动态页面,减少后端服务器的负载,提高响应速度。通过设置缓存时间、缓存规则等参数,可以灵活地控制缓存策略。 「 SSL终端 」:Nginx 可以作为 SSL 终端,接收 HTTPS 请求并进行 SSL/TLS 解密,然后将解密后的请求转发给后端服务器。这样可以减轻后端服务器的负担,提高安全性和性能。 「 安全过滤」:Nginx 可以通过反向代理实现安全过滤功能,例如防止恶意请求、DDoS 攻击、SQL 注入等。通过配置访问控制规则、限制请求频率等方式,可以提高系统的安全性。 「 配置文件」:Nginx 的反向代理功能通过配置文件进行配置。配置文件包含了全局配置、http 配置和 server 配置等部分,可以设置监听端口、代理规则、缓存配置、负载均衡策略等。 「 超高性能 」:Nginx 具有高性能的特点,采用异步非阻塞的事件驱动模型,可以处理大量并发连接。同时,Nginx 的内存消耗较低,适合在资源有限的环境中使用。

  下面我们来实验具体实现

  下面实验是在云端源想云实验室上进行,点击尝试实验

  拖建环境

  从左侧设备列表左键按住拖建两台服务器和一台客户端

  环境系统为 系统

  下面开始介绍部署的具体实现步骤

  服务器1:后端服务器

  搭建一个 nginx静态web服务器 作为后端服务器

  1.启动服务器并进入终端操作

  右键点击服务器-选择启动服务

  

  启动后,右键点击服务器-选择打开终端,进入服务器的控制终端

  终端界面,可点击全屏展示

  2.安装Nginx

  终端内(可全屏操作)

  更新本地软件包列表

  使用命令安装Nginx

  出现需确认才可继续执行时 输入 Y 继续执行

  使用查看命令查看Nginx是否安装成功

  出现Nginx的版本 说明安装成功

  3.配置Nginx

  我们选择将自己的配置文件放在 路径下,进入 路径目录,并创建配置文件 cd /etc/nginx/conf.d/ touch myweb.conf 我们需要的 配置内容为下面代码块内容: server { listen 80; server_name 172.17.0.53; root /usr/local/share/myweb; location / { allow all; } }

  配置文件内容,我们需要首先获取知道自己的IP地址,将其用作 server_name 获取服务器IP地址 ip addr show eth0

  该命令会输出容器内默认网卡 网卡的信息。 我们在inet后找到IP地址。

  或者查看设备名称下已显示IP地址 找到IP地址后,查看并编辑配置文件 myweb.conf vim myweb.conf 正确输入上述 块内内容,并确保 对应地址正确

  保存并关闭

  4.创建指定Nginx服务器根目录

  创建根目录

  进入 目录,并在其下用 创建我们的根目录,可使用 命令查看是否正确创建

  在根目录下,创建一个静态web文件 backend_server.html cd /usr/local/share/myweb/ touch backend_server.html 编辑文件 vim backend_server.html 文件内容为: <!DOCTYPE html> Welcome to the Backend Server! This is some information from the backend server.

  保存并退出,可使用 查看内容是否正确保存至此,我们的 块内容全部获取并做好了配置文件,下面我们来启动Nginx服务并校验配置是否正确生效

  5.启动Nginx

  启动Nginx服务后再查看Nginx服务状态是否正常启动并正在运行 service nginx start service nginx status

  Nginx服务已经正常启动了

  至此 后端Nginx服务器及其配置已全部完成,下面我们来安装配置 Nginx 反向代理服务器

  服务器2:nginx反向代理服务器

  安装并配置Nginx反向代理服务器

  1.启动服务器并进入终端操作

  右键点击服务器-选择启动服务

  启动后,右键点击服务器-选择打开终端,进入服务器的控制终端

  终端界面,可点击全屏展示

  2.安装Nginx

  终端内(可全屏操作)

  更新本地软件包列表

  使用命令安装Nginx

  出现需确认才可继续执行时 输入 Y 继续执行

  使用查看命令查看Nginx是否安装成功

  出现Nginx的版本 说明安装成功

  3.配置Nginx

  我们选择将反向代理的配置文件放在 路径下,进入 路径目录,并创建配置文件 cd /etc/nginx/conf.d/ touch reverse_proxy.conf 我们需要的 配置内容为下面代码块内容: server { listen 80; server_name 172.17.0.55; location / { proxy_pass http://172.17.0.53:80; } }

  配置文件内容,我们需要首先获取知道自己的IP地址,将其用作 server_name

  proxy_pass 将其IP配置为 后端服务器的IP及端口,以做访问转发 获取服务器IP地址 ip addr show eth0

  该命令会输出容器内默认网卡 网卡的信息。 我们在inet后找到IP地址。

  或者查看设备名称下已显示IP地址 找到IP地址后,查看并编辑配置文件 reverse_proxy.conf vim reverse_proxy.conf 正确输入上述 块内内容,并确保 对应地址正确,以及正确填写了代理转发时的后端服务器IP及其端口号 image

  保存并关闭

  4.启动Nginx

  启动Nginx服务后再查看Nginx服务状态是否正常启动并正在运行 service nginx start service nginx status

  Nginx服务已经正常启动了

  至此 后端Nginx反向代理服务器及其配置已全部完成,下面我们来使用客户端测试其访问是否正常

  客户端

  先验证客户端上访问后端服务器上Nginx静态Web服务器内页面

  1.启动客户端服务并构建客户端到后端服务器的访问权限

  右键点击客户端-启动服务,启动客户端服务器 连线:连接一条客户端指向后端服务器的连线,以创建从客户端到后端服务器的访问权限

  2.客户端通过IP访问服务器上静态文件

  客户端进入终端

  右键点击客户端-打开操作终端使用命令 命令访问服务器上的静态页面

  先安装 命令

  访问静态页面

  

  可以看到,我们通过直接访问后端服务器是可以看到静态页面的内容的

  下面我们继续测试反向代理服务器是否正常

  再验证客户端上通过反向代理服务器是否能正常访问到后端服务器的页面内容

  1.重新构建客户端到服务器2(反向代理服务器),服务器2到服务器1(后端服务器) 的访问权限

  双击之前客户端到服务器1的权限连线,删除访问权限 连线:重新构建客户端到服务器2(反向代理服务器),服务器2到服务器1(后端服务器) 的访问权限

  2.客户端通过IP访问反向代理服务器

  使用命令 命令访问服务器上的静态页面

  访问静态页面

  

  可以看到,我们通过直接访问Nginx反向代理服务器,依然是可以正常访问到后端服务器内的页面内容。

  至此,Nginx反向代理实验结束。