当前位置: 首页 > article >正文

nginx 修改配置

如果你的后端服务在不同的端口上运行,但静态资源访问路径相同,你可以使用 Nginx 的 location 配置来将请求转发到不同的后端服务,同时处理静态文件。这里有几种常见的方式:

方案 1: 基于路径的配置
如果所有服务的静态资源路径相同,你可以直接使用 Nginx 的 location 指令来处理不同的服务请求。以下是一个示例:

server {
    listen 80;
    server_name localhost;  # 或者你的内网 IP

    # 静态资源路径(假设都是 /api/ )
    location /api/ {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # 根据请求 URI 中的某个部分选择后端服务
        set $backend "";

        if ($request_uri ~* "^/api/service1/") {
            set $backend "http://localhost:8081";
        }

        if ($request_uri ~* "^/api/service2/") {
            set $backend "http://localhost:8082";
        }

        proxy_pass $backend;  # 转发请求到相应的后端服务
    }
}

方案 2: 反向代理不同路径的静态资源
如果你需要在一个路径下访问不同服务的静态资源,可以将它们按服务区分,或者使用一个通用的后端处理请求。示例:

server {
    listen 80;
    server_name localhost;  # 或者你的内网 IP

    location /service1/api/ {
        proxy_pass http://localhost:8081/;  # 将请求代理到服务 1 的 API
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /service2/api/ {
        proxy_pass http://localhost:8082/;  # 将请求代理到服务 2 的 API
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # 静态资源访问(所有服务使用同一路径)
    location /api/ {
        # 根据请求 URI 转发到相应的后端
        # 这里可以采用方案 1 中的 set 逻辑
        set $backend "";

        if ($request_uri ~* "^/api/service1/") {
            set $backend "http://localhost:8081";
        }

        if ($request_uri ~* "^/api/service2/") {
            set $backend "http://localhost:8082";
        }

        proxy_pass $backend;  # 转发请求到相应的后端服务
    }
}

说明
请求路径选择:

使用 Nginx 的 if 指令来根据请求的 URI 判断将请求转发到哪个后端服务。这里的逻辑可以根据实际情况调整。
相同的路径:

通过 /api/ 统一访问路径,不同服务的静态资源和 API 都可以通过同一 URI 访问。
路径重写:

如果需要,可以使用 rewrite 指令重写请求路径,使其符合后端服务的要求。
小结
这些方法可以帮助你在同一 Nginx 配置中灵活处理不同的后端服务,同时统一访问路径。根据实际需求选择适合的方案来实现请求的分发和静态资源的处理。


http://www.kler.cn/news/368078.html

相关文章:

  • pytorch + d2l环境配置
  • Python实现贝叶斯优化器(Bayes_opt)优化简单循环神经网络分类模型(SimpleRNN分类算法)项目实战
  • 无需依赖闭源模型!司南CompassJudger为AI评测带来新选择
  • 【python库】PandasGUI介绍
  • Maven项目报错:invalid LOC header (bad signature)
  • 力扣刷题(sql)--零散知识点(1)
  • 正则表达式(Regular Expression, Regex)详解
  • linux中的PATH环境变量
  • 【笔记】Diffusion Model 扩散过程(熵增过程:从有序变为无序):在原始分布上逐步的加高斯噪声,加到最后这个分布就变成一个各项独立的高斯分布
  • [Linux网络编程]05-TCP状态和端口复用,shutdown函数(主动方建立/关闭连接状态,被动方建立/关闭连接状态,2MSL时长,TCP其他状态)
  • protobuf序列化
  • 解读AVL树:平衡二叉搜索树的奥秘
  • python 爬虫 入门 五、抓取图片、视频
  • 建造者设计模式
  • 基于知识图谱的苹果病虫害知识图谱问答
  • redis详细教程(2.List教程)
  • 如何快速开发一套基于Java的诊所管理系统?
  • C++设计模式——Factory Method工厂方法模式
  • C#文件内容检索的功能
  • P11232 [CSP-S 2024] 超速检测(民间数据)
  • ES6:let和const命令解读以及变量的解构赋值
  • PostgreSQL(十三)pgcrypto 扩展实现 AES、PGP 加密,并自定义存储过程
  • Flink CDC系列之:学习理解核心概念——Transform
  • Elasticsearch 解析:倒排索引机制/字段类型/语法/常见问题
  • 双击热备和负载均衡的区别
  • 头歌数据库实验 MySQL