`
can_do
  • 浏览: 265972 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过Openresty提取具体URI代理到指定BackendServer以解决CORS问题

阅读更多
通过Openresty提取具体URI,代理到指定BackendServer,以解决CORS问题,

一、问题场景

Browser请求https//biz4h5.company.com/xxx/yyy

而biz4h5.company.com要访问前后台分离的后台接口,https//biz4api.company.com/aaa/bbb

如果biz4h5.company.com和biz4api.company.com的解析ip不同,会导致CORS问题,关于CORS

的具体产生,可参考本人另一篇文章。

注意:CORS三要素,protocol,ip,port有一者不同,就会导致CORS

通过biz4h5.company.com所在的Openresty,统一代理到后台节点,改为如下方式:

https//biz4h5.company.com/xxx/yyy =>访问H5资源

https//biz4h5.company.com/backendapi/aaa/bbb =>访问后台接

口,https//biz4api.company.com/aaa/bbb



二、样例代码如下:

location / {
            proxy_pass http://yourbackendserver;

          if ( $request_uri ~* ^\/backendapi\/(.*) ) {
              content_by_lua '
                local raw_uri = ngx.var.uri
                local sent_uri = string.gsub(raw_uri, "(/%w+)", "", 1)
                ngx.req.set_header("host", "biz.company.com")
                ngx.req.set_uri(sent_uri)
                ngx.exec("@gateway")
            ';
          }

location @gateway{
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header remote_addr $remote_addr;
            proxy_pass  https://biz.company.com:5443;
        }
# the following codes have been escaped
}


【温馨提示】
如果您觉得满意,可以选择支持下,您的支持是我最大的动力:

分享到:
评论

相关推荐

    番外篇:打破基于OpenResty的WEB安全防护(CVE-2018-9230)1

    然而,它在处理URI参数时存在一个安全漏洞,即CVE-2018-9230,该漏洞允许远程攻击者绕过基于OpenResty的安全防护措施,影响到使用OpenResty的多款开源Web应用防火墙(WAF)。 漏洞的根本原因在于OpenResty的两个...

    OpenResty1.25版本安装包

    OpenResty社区提供了丰富的资源,包括文档、示例代码和第三方模块,帮助开发者快速上手并解决遇到的问题。 总之,OpenResty 1.25.3.1是一个强大的Web开发框架,它融合了Nginx的高性能和Lua的灵活性,为构建高性能、...

    OpenResty Best Practices.pdf

    《OpenResty最佳实践》是一本深入...总的来说,《OpenResty最佳实践》全面而深入地阐述了OpenResty的使用技巧和优化策略,是每个OpenResty开发者不可或缺的参考资料,有助于提升开发效率,优化系统性能,解决实际问题。

    openresty-1.25.3.1源码

    OpenResty 的核心是 Nginx,一个著名的反向代理服务器和负载均衡器,以其高性能和低内存占用而闻名。通过结合 LuaJIT,OpenResty 将动态脚本能力引入了 Nginx,使得开发者能够构建出高性能的 RESTful API 服务、Web ...

    打破基于OpenResty的WEB安全防护(CVE-2018-9230)1

    解决这个问题的关键在于更新OpenResty到修复了此漏洞的新版本,或者在应用层面增加额外的检查,限制请求参数的数量和类型,防止恶意输入。此外,开发人员应当注意对所有输入进行严格的验证和清理,以确保即使在...

    Openresty 缓存策略.pdf

    OpenResty是一款集成了Nginx和LuaJIT的服务器软件,能够以高效的事件驱动模型处理高并发请求。在OpenResty中,开发者可以利用Lua脚本来实现复杂的业务逻辑,同时使用其内置的高性能缓存机制来提升应用程序的性能。 ...

    openresty官方学习资料

    读者会学习到如何利用OpenResty进行反向代理、负载均衡、缓存管理等常见的Web服务任务。此外,书中还会深入讲解OpenResty的API接口,包括Nginx的HTTP模块、Stream模块,以及Lua API,帮助读者熟悉OpenResty的核心...

    《OpenResty最佳实践》 .pdf

    OpenResty是一个基于Nginx和LuaJIT的全功能Web平台,它将Lua脚本语言嵌入到Nginx服务器中,可以用来构建动态的Web应用和高性能Web服务。《OpenResty最佳实践》这本书籍,旨在向读者介绍OpenResty的使用方法和最佳...

    配合openresty使用waf模块

    标题 "配合openresty使用waf模块" 涉及的核心技术是Web应用程序防火墙(Web Application Firewall,简称WAF)以及如何将其与OpenResty集成。OpenResty是一款基于Nginx的全功能Web服务框架,它集成了LuaJIT编程语言,...

    OpenResty(openresty-1.21.4.1.tar.gz)

    OpenResty通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的...

    openresty 最佳实践

    OpenResty是一种基于Nginx的高性能Web平台,它通过集成LuaJIT来为Nginx提供强大的可编程能力。OpenResty允许开发者以极高的性能实现复杂的Web应用,且能够处理数以万计的并发连接。因此,OpenResty在处理大量HTTP...

    OpenResty安装过程.pptx

    通过以上内容的学习和实践,可以了解到OpenResty不仅是一款强大的Web平台,还能够在各种应用场景中发挥重要作用。从简单的安装过程到复杂的项目案例,我们都能看到OpenResty及其相关技术的强大功能和灵活性。无论是...

    openresty源码(openresty-1.19.9.1.tar.gz)

    OpenResty是一款基于Nginx与LuaJIT的高性能Web平台,它集成了大量开源的高性能库,使得开发者能够利用Lua脚本语言快速构建出强大的动态Web应用。在这个压缩包"openresty-1.19.9.1.tar.gz"中,包含的是OpenResty的...

    OpenResty与ansible安装1

    OpenResty是一款基于Nginx与Lua的高性能Web平台,它将强大的Lua脚本语言嵌入到Nginx中,使得开发者可以利用Nginx的高效能来处理复杂的Web应用逻辑。Ansible则是一种自动化运维工具,能够简化服务器配置、软件部署...

    openresty1.13.6.2

    安装完成后,你可以在指定的安装路径下找到OpenResty的可执行文件和配置文件,如`nginx`二进制文件,以及`conf`目录下的默认配置文件。 OpenResty支持丰富的模块扩展,如lua-nginx-module,用于在Nginx配置文件中...

    OpenResty最佳实践

    了解如何使用OpenResty的高级特性,比如LuaRestyDNSLibrary、LuaRestyLock、stream_lua_module和TCP代理负载等,能够帮助开发者解决更复杂的问题。 ### OpenResty周边工具 最后,对于OpenResty的周边工具,如...

    OpenResty-Best-Practices.pdf

    - **API Server 构建**:通过具体的示例讲解如何构建一个简单的 API 服务器框架。 - **与其他 location 配合**:讨论如何在 Nginx 的不同配置块之间进行协作。 - **获取和处理请求数据**:解释如何从客户端请求中...

    openresty 在直播领域中的应用.pdf

    OpenResty 在直播领域中的应用 OpenResty 是一个基于 Nginx 的高性能 Web 服务器,可以提供高效、可靠、可...但是,OpenResty 在直播领域中的应用也存在一些问题和优化项目需求,需要通过优化方案来提高性能和可靠性。

Global site tag (gtag.js) - Google Analytics