Orange - 基於OpenResty的API Gateway

Orange

Orange是一個基於OpenResty的API Gateway,提供API及自定義規則的監控和管理,如訪問統計、流量切分、API重定向、WEB防火牆等功能。它有如下特性:mysql

  • 配置項支持文件存儲和MySQL存儲(0.2.0版本開始將去除文件支持)linux

  • 經過MySQL存儲來簡單支持集羣部署nginx

  • 支持多種條件匹配和變量提取git

  • 支持經過自定義插件方式擴展功能github

  • 默認內置六個插件sql

    • 全局狀態統計數據庫

    • 自定義監控centos

    • URL重寫restful

    • URI重定向ide

    • 簡單防火牆

    • 代理、ABTesting、分流

  • 提供管理界面用於管理內置插件

  • 以restful形式徹底開放API

Github: https://github.com/sumory/orange

Screenshots

clipboard.png

clipboard.png

安裝說明

  • 安裝OpenResty1.9.7.3+

  • 安裝lor,Orange要求的lor最低版本爲0.1.0

  • Orange使用的uuid生成器,依賴libuuid.so, centos可經過如下命令安裝,其餘linux發行版請自行google

    yum install libuuid-devel
  • 安裝Orange

    git clone https://github.com/sumory/orange
    cd orange
    
    #查看並根據須要修改`orange.conf`
    {
      "plugins": [//默認的可用插件,若不須要刪除便可
        "stat",
        "monitor",
        "redirect",
        "rewrite",
        "waf",
        "divide"
      ],
    
      "store": "mysql", //存儲方式:`mysql`
      "store_mysql": { //使用`mysql`存儲時的配置,須要導入install/${對應版本}.sql到數據庫中
        "timeout": 5000,
        "connect_config": {
          "host": "127.0.0.1",
          "port": 3306,
          "database": "orange",
          "user": "root",
          "password": "",
          "max_packet_size": 1048576
        },
        "pool_config": {
          "max_idle_timeout": 10000,
          "pool_size": 3
        },
        "desc":"mysql configuration"
      }
    }
    
    #修改conf/nginx.conf裏的一些配置,如
    # `resolver`,用於DNS解析
    # 各日誌目錄等
    # 各lua_shared_dict的大小
    # 端口爲9999的`server`, 這個server用於Orange的管理,請確保對該端口的訪問受權,如只支持內網訪問
    
    #修改好orange.conf和conf/nginx.conf後,啓動便可
    sh start.sh
  • 訪問 http://localhost:9999/orange/dashboard/

特別注意

  • 現實中因爲用戶的業務系統多種多樣,對於複雜應用,Orange並非一個開箱即用的組件,須要調整一些配置才能集成到現有系統中。

  • Orange提供的的配置文件和示例都是最簡配置,用戶使用時請根據具體項目或業務須要自行調整,這些調整可能包括但不限於:

    • 使用的各個shared dict的大小, 如ngx.shared.status

    • nginx.conf配置文件中各個server、location的配置及其權限控制,好比orange dashboard的server應該只對內部有權限的機器開放訪問

    • 根據不一樣業務而設置的不一樣nginx配置,如timeout、keepalive、gzip、log、connections等等

其它

Orange0.2.0版本即將發佈,API已經所有開放,用戶可經過默認的Dashboard管理,也可經過Restful的API進行操做。第三方SPA版的Dashboard已在開發中,屆時會伴隨0.2.0一塊兒發佈。

相關文章
相關標籤/搜索