Giter Site home page Giter Site logo

zhwaaaaaa / nginx-nacos-upstream Goto Github PK

View Code? Open in Web Editor NEW
55.0 55.0 9.0 1.3 MB

nginx nacos module. subscribe service and configuration from nacos instead of modifying and reloading nginx.conf

License: Apache License 2.0

CMake 2.22% C 97.51% Shell 0.27%
configuration-management grpc nacos nginx openresty service-registration

nginx-nacos-upstream's People

Contributors

zhwaaaaaa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

nginx-nacos-upstream's Issues

支持 nginx 订阅 nacos config

支持 nginx 订阅 nacos config。实现类似如下的配置

nacos {
# ....
}
http {
  nacos_config_var $var_value_from_nacos data_id=nacos_key group_id=DEFAULT_GROUP;
  server {
     location {
        return 200 $var_value_from_nacos;
     }
 }
}

make error

modules/nacos/ngx_nacos_grpc.c: In function ‘ngx_nacos_grpc_update_send_window’:
modules/nacos/ngx_nacos_grpc.c:1637:33: error: ‘t’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
1637 | st->non_block_bufs.tail = t;
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~
cc1: all warnings being treated as errors
make[1]: *** [objs/Makefile:1453: objs/addon/nacos/ngx_nacos_grpc.o] Error 1
make[1]: Leaving directory '/home/martin/nginx-nacos-upstream'
make: *** [Makefile:10: build] Error 2

如何运行

表示看不懂实际的流程,可以写一下具体的操作流程?是下载nginx官方的包,然后将你的module放进去编译?

模块编译问题

Hello,我在编译nacos和auxiliary时,在make时遇到以下报错,请问下是什么原因?
image

Thanks

下一步计划

现在是 启动的时候同步订阅一下ip,然后启动 udp 端口接受推送。如果订阅的服务过多,启动变得非常慢。下一步计划

  1. 专门启动一个辅助进程异步完成订阅和接受推送,不影响 worker 进程,并且可以备份到磁盘上。使其能够适合大规模集群的使用。
  2. 可以注册 nginx 自身的端口。
  3. 增加服务单元化能力。

![image](https://user-images.githubusercontent.com/103627075/199382041-fc8c2d04-7b93-413d-8835-dd554fb71bf9.png)

    ![image](https://user-images.githubusercontent.com/103627075/199382041-fc8c2d04-7b93-413d-8835-dd554fb71bf9.png)

我找了一个新环境重新git clone下来,make还是有报错,而且我对比了,报错与之前是一样的,而我去找到了您修改的源码,确认是用您新改的源码,能麻烦再帮忙指导看看吗?Thanks

Originally posted by @JayL946 in #5 (comment)

讨论贴:现在已经支持 nginx 了,但是用起来有点不灵活。计划做一次大重构,全面支持 openresty,计划如下

支持 配置 订阅 支持 lua 回调

新增 如下命令,用于支持 配置的 lua 回调

subscribe_config_by_lua_block data_id=xxxx group=xxx {
    local config_data = nacos.get_current_config_data()
    local config_md5 = nacos.get_current_config_md5()
    --- 通过 lua 自行处理 nacos 推送的配置
    ngx.log(ngx.ERR, "config_data="..config_data.."   config_md5="..config_md5)
}

lua 中支持 动态订阅 配置

-- 支持 lua 动态订阅配置
nacos.subscribe_config(data_id=xxxx, group=xxx, function(config_data, config_md5)
    --- 通过 lua 自行处理 nacos 推送的配置
    ngx.log(ngx.ERR, "config_data="..config_data.."   config_md5="..config_md5)
end)

lua 中支持 直接查询配置,非订阅

-- 支持 lua 动态订阅配置
local config_data, config_md5 = nacos.query_config(data_id=xxxx, group=xxx)
--- 通过 lua 自行处理 nacos 推送的配置
ngx.log(ngx.ERR, "config_data="..config_data.."   config_md5="..config_md5)

lua 中支持动态订阅服务

-- 支持 lua 动态订阅配置
nacos.subscribe_service(service_name=xxxx, group=xxx)

lua 中获取 服务的 地址列表

-- 支持 lua 动态订阅配置
nacos.get_service_result(service_name=xxxx, group=xxx)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.