---------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 版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!