当前位置: 首页 > 知识库问答 >
问题:

Spring靴子和祖尔路线

广晔
2023-03-14

有一个简单的代理:

@EnableZuulProxy
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
    @Bean
    public  SimpleFilter simpleFilter(){
        return  new SimpleFilter();
    }

}

预过滤器:

public class SimpleFilter extends ZuulFilter {

    private static Logger log = LoggerFactory.getLogger(SimpleFilter.class);

    @Override
    public String filterType() {
        return "pre";
    }

    @Override
    public int filterOrder() {
        return 1;
    }

    @Override
    public boolean shouldFilter() {
        return true;
    }

    @Override
    public Object run() {
        RequestContext ctx = RequestContext.getCurrentContext();
        HttpServletRequest request = ctx.getRequest();

        log.info(String.format("%s request to %s", request.getMethod(), request.getRequestURL().toString()));

        return null;
    }

}

和属性:

    zuul.ignored-patterns=/myserver/web/**
    zuul.routes.myserver.path=/myserver/api/**
    zuul.routes.myserver.url=http://localhost:80/myserver/api
    zuul.routes.myserver.sensitiveHeaders = Cookie,Set-Cookie
    server.port=3000

总的来说,一切正常。
但是代理发送的网页具有以下链接

href="http://localhost:80/myserver/api/item"

必须采用如下形式:

href="http://server_ip:3000/myserver/api/item"

如何配置服务器以发送正确的链接?

案例:
1.直接从Internet访问myserver时,例如:

http://server_ip:80/myserver/api/item

服务器发送带有如下链接的页面:

 href="http://server_ip:80/myserver/api/item"

2.从Internet访问代理时,如:

http://server_ip:3000/myserver/api/item

代理服务器发送带有以下链接的页面:

href="http://localhost:80/myserver/api/item"

共有1个答案

鲁涵意
2023-03-14

理解并尝试了不同的选择。< br >要解决这个问题,我只需添加设置。性能

......
zuul.add-host-header = true 
......
 类似资料:
  • 我有一个SpringBootGateway项目,它使用Zuul将请求路由到内部服务。这些服务是使用Eureka发现的。 这适用于大多数场景。但是,有一些长请求从网关返回。底层服务实际上正在完成请求。并且在该时间期间对网关的请求保持打开。 这两个请求都相当长。其中一个运行一个小流程,大约需要5-10秒。另一个是文件上传。这两个请求都是不返回正文的方法。这会影响祖尔吗? 这是日志中的堆栈跟踪。 以下是

  • 我是SpringCloud的新手,在我的项目(一个使用SpringBoot构建的微服务项目)中,我使用了SpringCloud版本Brixton。RC2,工作正常。但是当我尝试升级到Brixton的时候。发布时,该项目不能与zuul一起工作(如果我直接访问web microservice,它可以工作,但是如果我通过zuul访问,它就不能工作),我没有更改任何配置。maven依赖项是: 有人能说明我

  • 我正在修改Springs优秀安全教程中的oauth2香草样本。oauth2-vanilla将Zuul代理和UI组合成一个应用程序。我想分离Zuul代理和UI。(Zuul代理应充当API网关和多个UI的反向代理)。 当通过zuul代理访问UI时,它应该能够在UI和资源后端之间基于Oauth2进行SSO。 oauth2香草看起来像这样 我想转移到这样的地方: 我已经从网关中移除了ui部分,并为UI添加

  • 我想做一些spring boot应用程序。我已经创建了spring boot项目,但我有一个问题。我的控制器看起来像: 但我看到的并不是索引。html,但只有一个单词“index”。所以我想用角度。 和控制器: 我的索引。html 但它不起作用,我只在本地主机上看到错误。 如何使这个角度控制器正常工作并返回正确的视图?

  • 我使用Spring引导1.3.3和黑兹尔卡斯特我的构建看起来像: 当服务在Linux执行时,我在日志中看到: 但我在油罐里看到hazelcast-all.jar有线索吗?

  • 我正在使用Spring boot和Ehcache来缓存应用程序中的一些数据。该应用程序是一个 rest 服务,用于缓存一些具有高使用率的数据。 我们的控制器中的代码看起来像: 现在,在某些情况下,用户从服务器获取不同的数据集。以上情况有人能解释一下吗? 如果数据库中的数据发生更改,我将刷新缓存,程序将自动将更新的数据更新为 对于刷新缓存,我使用自定义写入方法: 我对使用和刷新的其他缓存具有相同的行