通俗易懂的 Nginx 反向代理 配置

news2024/12/13 20:17:40

通俗易懂的 Nginx 反向代理 配置

首先 root 与 alias 的区别

  1. root 是直接拼接 root + location
location /i/ {
    root /data/w3;
}

当请求 /i/top.gif ,/data/w3/i/top.gif 会被返回。

  1. alias 是用 alias 替换 location
location /i/ {
    alias /data/w3/images/;
}

当请求 /i/top.gif ,/data/w3/images/top.gif 会被返回

Nginx 反向代理 解决跨域

假设页面地址:http://192.168.31.115:8080

假设请求接口地址:http://v.juhe.cn/laohuangli/d?date=2014-09-09&key=dae46b9a6abb27fecaace80f47624f

配置Nginx

server {
    listen       8088;
    server_name  192.168.31.115;


    location / {
        proxy_pass http://192.168.31.115:8080/; //反向代理
    }


    location /laohuangli {
        proxy_pass http://v.juhe.cn/laohuangli;
    }
}

将页面地址代理到8088端口,将接口地址也代理到8088端口

页面中请求接口

fetch('http://192.168.31.115:8088/laohuangli/d?date=2014-09-09&key=dae46b9a6abb27fecaace80f47624f').then(res=>res.json()).then(res=>{
    console.log(res)
  })

访问页面:http://192.168.31.115:8088/

  1. server 块
    整个配置被包裹在一个 server 块内,这意味着以下所有配置都是针对这个特定的服务器实例的。

  2. listen 8088;
    作用:指定 Nginx 监听的端口号为 8088。
    说明:当客户端访问服务器的 192.168.31.115 地址时,需要通过端口 8088 来访问这个服务。例如,访问 http://192.168.31.115:8088。

  3. server_name 192.168.31.115;
    作用:定义服务器的名称为 192.168.31.115。
    说明:server_name 用于区分不同的虚拟主机。当请求的 Host 头部与这里指定的 server_name 匹配时,Nginx 会使用这个服务器块来处理请求。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

反向代理的优势

  • **安全性:**后端服务器的详细信息对客户端隐藏,提升了安全性。
  • **负载均衡:**可以将请求分发到多台后端服务器,提升处理能力。
  • **缓存:**Nginx可以缓存后端服务器的响应,减少后端负载,提高响应速度。
  • 统一入口:所有请求通过 Nginx 进行管理,便于统一配置
    SSL、压缩、限流等功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2258940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git 导出某段时间修改的文件 windows

第一步:列出两次commitID之间的文件变动 git diff oldid newid --name-only// 例如 git diff 4a886c57a8b5611a2abcfcd120461c2e92f7029a HEAD --name-only 4a886c57a8b5611a2abcfcd120461c2e92f7029a 代表之前 HEAD 代表最新或者换成某次commitID 例如&#xf…

若依集成Uflo2工作流引擎

文章目录 1. 创建子模块并添加依赖1.1 新建子模块 ruoyi-uflo1.2 引入 Uflo2 相关依赖 2. 配置相关 config2.1 配置 ServletConfig2.2 配置 UfloConfig2.3 配置 TestEnvironmentProvider 3. 引入Uflo配置文件4. 启动并访问 Uflo2 是由 BSTEK 自主研发的一款基于 Java 的轻量级工…

BERT:用于语言理解的深度双向 Transformer 的预训练。

文章目录 0. 摘要1. 介绍2. 相关工作2.1 无监督的基于特征的方法2.3 无监督微调方法2.3 从受监督数据中迁移学习 3. BERT3.1 预训练 BERT3.2 微调 BERT 4. 实验4.1 GLUE4.2 SQuAD v1.14.3 SQuAD v2.04.4 SWAG 5. 消融研究5.1 预训练任务的影响5.2 模型大小的影响5.3 使用 BERT …

如何快速批量把 PDF 转为 JPG 或其它常见图像格式?

在某些特定场景下,将 PDF 转换为 JPG 图片格式却具有不可忽视的优势。例如,当我们需要在不支持 PDF 查看的设备或软件中展示文档内容时,JPG 图片能够轻松被识别和打开;此外,对于一些网络分享或社交媒体发布的需求&…

如何在项目中使用人大金仓替换mysql

文章目录 数据库连接配置调整驱动和连接字符串修改:用户名和密码: SQL 语法兼容性检查数据类型差异处理:函数差异:SQL语句客户端 SQL 交互工具 数据迁移数据库、用户移植数据迁移工具使用:迁移过程中的问题及解决方案 …

【DVWA】XSS(Stored)

倘若人生一马平川,活着还有什么意思呢。 1.XSS(Stored)(Low) 相关代码分析 trim(string,charlist) 函数移除字符串两侧的空白字符或其他预定义字符,预定义字符包括、\t、\n、\x0B、\r以及空格,可选参数charlist支持添加额外需要删除的字符…

数据分析python小工具录入产品信息到Excel

在没有后台管理系统的时候,有时候为了方便起见,想提供一个输入框让运营人员直接输入,然后数据就会以数据库的形式存进数据库 效果图: 输入用户名 输入数据 输入信息后点击添加到表格,检查后方便批量保存到excel …

HTML和JavaScript实现商品购物系统

下面是一个更全面的商品购物系统示例,包含新增商品、商品的增加删除以及结算找零的功能。这个系统使用HTML和JavaScript实现。 1.功能说明: 这个应用程序使用纯HTML和JavaScript实现。 包含一个商品列表和一个购物车区域。商品列表中有几个示例商品&a…

C# 探险之旅:第三节 - 有趣的变量命名

欢迎再次回到我们的C#魔法森林。今天,我们要一起探索一个既有趣又实用的技能——变量命名。想象一下,你正在为你的小精灵们(变量)起名字,好的名字不仅能让它们更容易被识别,还能让你的魔法书(代…

JavaEE 【知识改变命运】04 多线程(3)

文章目录 多线程带来的风险-线程安全线程不安全的举例分析产出线程安全的原因:1.线程是抢占式的2. 多线程修改同一个变量(程序的要求)3. 原子性4. 内存可见性5. 指令重排序 总结线程安全问题产生的原因解决线程安全问题1. synchronized关键字…

ASP.NET|日常开发中连接Sqlite数据库详解

ASP.NET|日常开发中连接Sqlite数据库详解 前言一、安装和引用相关库1.1 安装 SQLite 驱动1.2 引用命名空间 二、配置连接字符串2.1 连接字符串的基本格式 三、建立数据库连接3.1 创建连接对象并打开连接 四、执行数据库操作4.1 创建表(以简单的用户表为例…

DS记录中

DataX/hdfswriter/doc/hdfswriter.md at master alibaba/DataX GitHub DataX 写入文档 https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/architecture/task-structure DS文档 DS 项目举例 流程 数据库(Datax) -> ODS (shell)->ADS(…

Node.js express

1. express 介绍 express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架,官方网址:https://www.expressjs.com.cn/简单来说,express 是一个封装好的工具包,封装了很多功能,便于我们开发 WEB 应用&#xff…

网络应用技术 实验八:防火墙实现访问控制(华为ensp)

目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验步骤 1、设计全网 IP 地址 2、设计防火墙安全策略 3、在 eNSP 中部署园区网 4、配置用户主机地址 5、配置网络设备 配置交换机SW-1~SW-5 配置路由交换机RS-1~RS-5 配置路由器R-1~R-3 6、配置仿…

分布式日志系统设计

一、分布式日志系统定义 分布式日志系统是一种用于收集、存储和分析大规模分布式系统日志的系统。它可以帮助开发人员和系统管理员实时监控和调试系统,提高系统可靠性和可用性,同时也可以用于日志分析和故障排查。 二、简单设计思路 日志收集&#xff…

详解RabbitMQ在Ubuntu上的安装

​​​​​​​ 目录 Ubuntu 环境安装 安装Erlang 查看Erlang版本 退出命令 ​编辑安装RabbitMQ 确认安装结果 安装RabbitMQ管理界面 启动服务 查看服务状态 通过IP:port访问 添加管理员用户 给用户添加权限 再次访问 Ubuntu 环境安装 安装Erlang RabbitMq需要…

java+springboot+mysql私人会所管理系统

项目介绍: 使用javaspringbootmysql开发的私人会所管理系统,系统包含管理员、技师、用户角色,功能如下: 管理员:用户管理;服务项目;技师管理;房间管理;预约管理&#x…

Java面试之Happens-Before原则

此篇接上一篇的Java面试之volatile关键字。 首先,这是Java语言中的一个“先行发生”(Happens-Before)的原则。是判断数据是否存在竞争,线程是否安全的非常有用的手段,也是Java内存模型中定义的两项操作之间的偏序关系。 其次,Happ…

TensorFlow深度学习实战(1)——神经网络与模型训练过程详解

TensorFlow深度学习实战(1)——神经网络与模型训练过程详解 0. 前言1. 神经网络基础1.1 神经网络简介1.2 神经网络的训练1.3 神经网络的应用 2. 从零开始构建前向传播2.1 计算隐藏层节点值2.2 应用激活函数2.3 计算输出层值2.4 计算损失值2.4.1 在连续变…

C++鼠标轨迹算法(鼠标轨迹模拟真人移动)

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…