美文网首页
Nginx实现多路由融合到一个路由

Nginx实现多路由融合到一个路由

作者: 复苏森林 | 来源:发表于2015-11-09 13:00 被阅读1415次

问题

@[java] @[代码] @[巧妙]@[Nginx]

我们采用目前主流的分模块或者说组件开发。按照功能模块,把后端系统分为了若干个组件,每个组件有自己独立的服务器部署。如果某个组件挂掉,不会影响其他组件的正常使用。但是,问题来了:

客户端在使用的时候,要记大量的不同IP和端口,非常麻烦,有没有一种方法,让后端的组件配置对于前端来说是透明的呢?

解决方案

我们引入Nginx的反向代理

做准备

  • 安装nginx(网上一抓一大把)
  • 启动nginx(网上一抓一大把)

写代码

在nginx的配置文件nginx.conf 中,加入配置如下:

本来访问 http://localhost/icloud-data/data , 配置完后,只需要访问localhost/data即可
本来访问 http://localhost/icloud-device/device, 配置完后,只需要访问localhost/device即可

server {
        listen        80;
        listen       localhost;
        server_name  somename  alias  another.alias;
        
    location / {
            root   html;
            index  index.html index.htm;
        }
        location /data {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost/icloud-data/data;
        }
    location /collect {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost/icloud-data/collect;
        }
    location /device {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost/icloud-device/;
        }
    }

配置完后,不需要重启nginx。只需要nginx -s reload 一下即可


在这个基础上,如果还想实现负载均衡,再配置一个

upstream localhost { 
      server  ip1:port1;
      server  ip2:port2;
}

相关文章

  • Nginx实现多路由融合到一个路由

    问题 @[java] @[代码] @[巧妙]@[Nginx] 我们采用目前主流的分模块或者说组件开发。按照功能模块...

  • react 笔记

    方案实现优势缺点基于 Nginx的路由分发通过 HTTP 服务器的反向代理来实现,通过路由前缀的不同将用户的请求指...

  • Nginx应用-Location路由反向代理及重写策略

    Nginx应用-Location路由反向代理及重写策略 一、Nginx的反向代理的路由策略 Nginx是著名的高性...

  • 组件化2.路由框架的设计

    路由框架原理 路由框架是为了实现组件之间的通信 路由框架维护了一个分组的路由表路由表中存放了路由地址和路由信息路由...

  • Vue与Nginx路由静态文件冲突的问题

    Vue有自己的路由,Nginx 也有自己的路由,当冲突的时候,即客户端访问Nginx配置的路由出问题的时候可以使用...

  • 路由

    路由map 路由视图 路由导航 实现简单路由 import VueRouter from 'vue-router'...

  • 前端中的 hash 和 history 路由

    前端路由有有 hash 路由和 history 路由两种路由方式,他们的原理是什么,又怎样实现一个简单的路由监听呢...

  • angular路由

    1.背景介绍 angular路由 angular路由可以实现多视图的单页Web应用。当请求一个url时,根据...

  • 计算机网络学习(四)----路由汇聚、子网掩码的求法

    路由汇聚: 路由汇聚是指把一组路由汇聚为一个单个的路由广播。路由汇聚优点是可以缩小网络上的路由表的尺寸。 算法实现...

  • vue创建使用中的问题

    1.vue路由分配,子路由分配。是否可以导入单独的路由对象文件? 2.vue的多页面,curd操作的具体实现 3....

网友评论

      本文标题:Nginx实现多路由融合到一个路由

      本文链接:https://www.haomeiwen.com/subject/okxhhttx.html