Windows服务器设置Nginx实现分布式服务

news2025/2/24 18:23:47

1.安装Nginx

下载Nginx-1.16.1版本。解压到如下目录:

设置环境变量:

检查版本:

启动nginx.exe,出现黑框一闪而过,进程中出现如下情况代表启动成功:

2.搭建模拟HTTP服务

下载wiremock-standalone-2.25.1.jar,可以使用Maven配置pom.xml下载。注意下载standalone版本。新建ServerA、ServerB两个目录,分别拷贝jar,新建启动脚本run.bat

run.bat内容:

两个实例分别使用17777、18888

java -jar wiremock-standalone-2.25.1.jar --port 17777
popd
pause
java -jar wiremock-standalone-2.25.1.jar --port 18888
popd
pause

启动后效果如下:

3.配置Nginx

配置nginx.conf 文件

listen:Nginx的监听端口,可以自定义

server_name:代理服务所在服务器的域名或IP

proxy_pass:指定了代理转发的目标地址,这里使用了一个名为 backend_servers 的上游服务,后面还将进行详细设置。

proxy_set_header:是 Nginx 配置项中的一个指令,用于设置向上游代理服务器发送的 HTTP 请求头。当 Nginx 作为反向代理服务器转发请求到后端服务器时,它会将客户端发送的请求头信息一并转发给后端服务器。而使用 proxy_set_header 指令可以在转发请求之前修改或添加新的请求头。

proxy_set_header Host $host; 的作用是在 Nginx 转发请求到后端服务器时,将客户端请求的原始主机名(即域名)添加到转发的请求头中的 Host 字段。

这个配置项非常重要,因为在进行反向代理时,后端服务器可能会使用请求头中的 Host 字段来判断请求的目标地址。例如,当客户端访问 http://your_domain.com/path,Nginx 会将该请求转发给后端服务器。如果没有设置 proxy_set_header Host $host;,那么在转发的请求头中的 Host 字段可能会被设置为 Nginx 的 IP 地址或其它默认值,而不是客户端实际请求的域名。

通过将 proxy_set_header Host $host; 添加到 Nginx 配置中,Nginx 会将客户端请求中的原始主机名(即域名)复制到转发的请求头的 Host 字段中。这样,后端服务器就能够正确地识别请求的目标地址,并进行相应的处理。

配置backend_servers

upstream和server位于同一级目录

server 127.0.0.1:17777;
server 127.0.0.1:18888;

为两个ServerA、ServerB服务所在主机IP地址和端口。

4.测试效果

打开ServerA、ServerB:

打开PostMan:

设置Nginx的IP和端口的URL,使用Send测试:

17777端口的服务收到了请求:

再次点击Send:这次18888服务收到了请求

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

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

相关文章

分析key原理

总结: key是虚拟dom对象的标识,当数据发生变化时,vue会根据新数据生成新的虚拟dom,随后vue进行新虚拟dom与旧虚拟dom的差异比较 比较规则: ①旧虚拟dom中找到了与新虚拟dom相同的key 若虚拟dom中的内容没变&#xff0c…

Windows Linux 子系统迎来多项改进,并增加IPv6支持

日前微软发布了Windows Linux 子系统(WSL)的最新预览更新(2.0.0 版),并且带来多项改进的同时还涉及部分实验功能。比如autoMemoryReclaim 和 Sparse VHD,而这些功能将有助于缓存和磁盘空间管理。 对此微软表示:“我们回收了虚拟机内存大小的…

Nginx代理配置详解

一、什么是代理 1、正向代理(forward proxy) 正向代理,简单的说就像是一个跳板,它隐藏了真实的请求客户端(IP),服务端不知道真实的客户端是谁,客户端请求的服务都由代理服务器来代替请求。 举个例子来说…

Nginx 默认的location index设置网站的默认首页

/斜杠代表location定位的路径,路径当中最重要的字段就是root。 root默认值就是html,这个就是nginx安装路径下面的html文件夹作为root的路径。默认不配置就是root下面的内容,index指定了主页的内容。 [rootjenkins html]# echo test > te…

Pytorch-MLP-Mnist

文章目录 model.pymain.py参数设置注意事项初始化权重如果发现loss和acc不变关于数据下载关于输出格式 运行图 model.py import torch.nn as nn import torch.nn.functional as F import torch.nn.init as initclass MLP_cls(nn.Module):def __init__(self,in_dim28*28):super…

Redis之hash类型

文章目录 Redis之hash类型1. 设置一个字段/获取一个字段2. 获取所有字段值3. 判断字段是否存在4. 设置多个字段/获取多个字段5. 只获取字段名/字段值6. 获取某个key内全部数量7. 增加数字8. 删除key内字段9. 字段不存在时赋值10. 应用场景 Redis之hash类型 redis的hash类型&…

Google Play上线规范及流程

将应用发布到 Google Play 商店需要遵循一系列规范和流程,以确保应用的质量、安全性和用户体验。以下是发布应用到 Google Play 的一般规范和流程,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流…

【linux基础(七)】Linux中的开发工具(下)--make/makefile和git

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到开通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 Linux中的开发工具 1. 前言2.…

代码随想录算法训练营第一天(C)| 704. 二分查找 27. 移除元素

文章目录 前言一、704. 二分查找二、27. 移除元素三、34. 在排序数组中查找元素的第一个和最后一个位置总结 前言 这次是C; 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素_愚者__的博客-CSDN博客 (java) 一、704. 二分查找 的优…

【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(四)

贴接上回。。。 【往期FAQ参考】 【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(一) 【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(二) 【HarmonyOS】【FAQ】HarmonyOS应用开发相关问题解答(三&#x…

ELFK之zookeeper+kafka

目录 kafkazookeeper的系统架构 Zookeeper 一、zookeeper概述 二、zookeeper特点 三、zookeeper选举机制 四、应用场景 五、zookeeper实验实例 Kafka 一、概述 为什么需要消息队列(MQ) 使用消息队列的好处 消息队列的两种模式 Kafka 定义 二、Kafka 的特性 三、Ka…

【Linux系统编程】通过系统调用获取进程标识符 及 创建子进程(fork)

文章目录 1. 通过系统调用获取进程标示符(PID)1.1 进程id(PID)1.2 父进程id(PPID) 2. bash也是一个进程3. 通过系统调用创建进程-fork初识3.1 批量化注释3.2 取消注释3.3 fork创建子进程3.4 fork的返回值3.…

【AD】【PCB封装规范计划】 -CON排针类

像这种CON,排针的。画PCB封装的时候,要把数字用丝印标出来!!!

浏览器调用本地exe

本地新建 .reg 文件添加注册表信息 修改路径和自定义协议名称 双击运行reg文件添加注册表信息 各参数说明,路径需要多加一个\转义 reg文件样例 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\localexe] "URL Protocol""C:\\Use…

java集合之迭代器遍历元素

集合遍历 遍历、迭代、逐个获取容器中的元素 Iterable接口 实现了Iterable接口的类是可以遍历的,因为Iterable接口是Collection接口的父接口,而所有单列集合类都实现了Collection接口,从而也都实现了Iterable接口,所以所有单列集…

电压放大器在电子测试中的应用有哪些方面

电压放大器是一种常见的电子设备,广泛应用于各种测试和测量应用中。以下是电压放大器在电子测试中的几个主要方面应用的简要介绍。 信号采集与处理:电压放大器通常用于信号采集和处理,在测试过程中将低电平信号放大到适合进一步处理或分析的水…

【python基础】编写/运行hello world项目

1.编写hello world项目 编程界每种语言的第一个程序往往都是输出hello world。因此我们来看看,如何用Python输出hello world。 1.如果你是初学者,main.py中的代码暂时是无法看懂的,所以可以把main中的源代码直接删除。如下所示 这里我们要…

Blender Morph Targets

推荐:用 NSDT编辑器 快速搭建可编程3D场景 在 Blender 中,Morph Target被称为Shape Key,即形状键,是将网格从一种形状变形为另一种形状的工具。 每个对象都被分配了一个基本形状,然后可以有许多可以变形的形状键。 形…

C# linq初探 使用linq查询数组中元素

使用linq进行数组查询 输出数组中全部的偶数并升序输出结果 写法1: int[] numbers { 5, 10, 8, 3, 6, 12 }; //查询的数组var numqurey from num in numberswhere num % 2 0 //按照条件过滤orderby numselect num;foreach (var num in numqurey){Console.Writ…

面试官:你是怎么理解ES6中 Decorator 的?使用场景?

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 一、介绍 二、用法 类的装饰 类属性的装饰 注意 三、使用场景 antobind readonly deprecate 一、介绍 Dec…