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


    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

    1. java -jar wiremock-standalone-2.25.1.jar --port 17777
    2. popd
    3. pause
    1. java -jar wiremock-standalone-2.25.1.jar --port 18888
    2. popd
    3. 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服务收到了请求

    5.Nginx接口映射

    使用自己开发的agg-dispatch-server微服务做测试

    部署本机,其中一个接口原有地址

    http://127.0.0.1:33129/dispatch/queryDevHospId

    在Windows环境下,配置如下nginx.conf

    然后通过Nginx访问接口地址变成如下:

  • 相关阅读:
    【mindspore】【训练】训练过程内存占用大
    【Qt】简单聊聊信号与槽
    新东方网销大火,腾讯坐不住了,急于套现,不看好线上直播?
    Android 打开系统应用
    【Bootstrap】快速上手Bootstrap 第一部分 理解响应式布局
    Oracle/PLSQL: Substr Function
    1.Apollo部署-linux
    java实现数据库:mbdb-基于文件存储的关系型数据库
    第一次使用VSCode创建vue项目(报错大全)
    【夜读】让自己更幸福的8件小事
  • 原文地址:https://blog.csdn.net/liuxinzhi1982/article/details/133080002