【CentOS 7.2】Orange 0.6.4 安裝與配置

---------2017-08-25 重新編輯格式---------
Orange是一個簡單易用的開源API Gateway,它集成了Openresty、Nginx和lor,使用Lua語言開發了nginx插件,可以實現後端服務API路由設置以及反向代理、負載均衡,此外還提供一些API監控功能,但是API鑑權尚不完善,不支持精細的權限配置。配合Docker使用,可以組成輕量級低負載的微服務架構,適合初創公司使用。通過API網關實現對外統一的接口契約格式,使得後端的開發語言對前端完全透明,實現多種後端語言共同開發,例如使用PHP支持一些需要快速上線的業務,而使用Java支持一些持久穩定的業務等,此外在集成其它採購的軟件,如OA、CMS等系統時,也可以起到隔離差異和統一訪問的作用。

一、安裝依賴

(1)安裝OpenSSL(Openresty依賴庫)

yum install openssl-devel

(2)安裝PCRE(Openresty依賴庫)

yum install pcre-devel

(3)編譯安裝Openresty(Orange依賴)

wget https://openresty.org/download/openresty-1.11.2.3.tar.gz
tar zxvf openresty-1.11.2.3.tar.gz
cd openresty-1.11.2.3
./configure -j2 --with-http_stub_status_module

編譯安裝

gmake && gmake install

或者

make && make install

默認安裝目錄爲

/usr/local/openresty

 

 編輯 .bash_profile

vi /root/.bash_profile

 .bash_profile配置環境變量: (:wq退出)

PATH=$PATH:$HOME/bin:/usr/local/openresty/bin:/usr/local/openresty/nginx/sbin

 更新配置

source /root/.bash_profile

*注:
筆者使用Openresty官方提供yum安裝源安裝之後,檢查orange安裝狀態時,Nginx出現如下錯誤,原因未知,因此最終還是選擇了編譯安裝。此外,使用yum安裝只生成openresty執行文件,而不會生成resty文件,需要自行創建軟連接”ln -s”。

(4)編譯安裝lor框架(Orange依賴)

git clone https://github.com/sumory/lor.git
cd lor
make install

 

默認安裝目錄爲:/usr/local/lor
可執行文件:/usr/local/bin/lord

二、安裝Orange

git clone https://github.com/sumory/orange.git
cd orange
make install

由於Orange 是免安裝使用,也可以使用start.sh直接啓動,因此,實際安裝的只是命令行工具,檢查命令行工具如下。

[root@beijing5 openresty]# orange help
Orangev0.6.4, OpenResty/Nginx API Gateway.
Usage:orange COMMAND [OPTIONS]
Thecommands are:
stop       Stop current Orange
version    Show the version ofOrange
restart    Restart Orange
reload     Reload the config of Orange
store      Init/Update/Backup Orange store
help       Show help tips
start      Start the Orange Gateway

默認安裝目錄爲:/usr/local/orange
可執行文件:/usr/local/bin/orange

三、配置Orange

Orange有兩個主要的配置文件orange.conf和nginx.conf,可以在執行”make install”之前,先修改好兩個配置文件。

(1)配置文件orange.conf

主要修改數據庫連接相關的配置,並設置dashboard密碼登錄,初始密碼admin/orange_admin。

{
    "plugins":[
        "stat",
        "monitor",
        "redirect",
        "rewrite",
        "rate_limiting",
        "property_rate_limiting",
        "basic_auth",
        "key_auth",
        "signature_auth",
        "waf",
        "divide",
        "kvstore"
    ],
    "store":"mysql",
    "store_mysql":{
        "timeout":5000,
        "connect_config":{
           "host": "192.168.1.107",
           "port": 3306,
           "database": "orange",
           "user": "orange_dba",
           "password": "orange_passwd",
           "max_packet_size": 1048576
        },
        "pool_config":{
           "max_idle_timeout": 10000,
           "pool_size": 3
        },
        "desc":"mysql configuration"
    },
    "dashboard":{
        "auth":true,
        "session_secret":"y0ji4pdj61aaf3f11c2e65cd2263d3e7e5",
        "whitelist":[
           "^/auth/login$",
           "^/error/$"
        ]
    },
    "api":{
        "auth_enable":true,
        "credentials":[
           {
               "username":"api_username",
               "password":"api_password"
           }
        ]
    }
}

 

(2)配置文件nginx.conf

可以直接使用默認配置文件啓動,然後再根據實際業務修改,建議把所有的error_log輸出級別設置爲warn,如下

error_log./logs/error.log warn;

否則會輸出大量的日誌記錄,此外建議設置crontab定時任務對日誌按天切分。
另外,建議將nginx.conf默認的server配置和新增的server配置拆分到幾個文件中,例如main.conf、dashboard.conf、default.upstream.conf、api.conf,然後在主配置文件裏引入,如下

include/usr/local/orange/conf/conf.d/*.conf;

--------------------- 作者:Fly2leo 來源:CSDN 原文:https://blog.csdn.net/fly2leo/article/details/73687426?utm_source=copy 版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章