Description
最近看到很多人在安装
Orange过程中碰了问题,大多数是因为找不到第三方依赖包。其实 README.md 安装步骤已经写的很详细了,但是对于新手来说,特别是对OpenResty都不太熟悉的同学,还是有点不太友好。因为Orange是基于OpenResty的 API 网关。所以在使用Orange之前,建议去把OpenResty的官方文档认真的读两遍,可以避免由于自己缺乏常识而导致的一些错误以至于浪费太多时间。不可否认,Orange现在对于插件的第三方依赖的管理方式并不是最完美的,这其实不是Orange本身的问题,是由于OpenResty到现在官方也没有提供一种特别好用的工具, opm 现在还是仅仅处于能用的状态,相比于Node.js社区中的npm还有很大的进步空间。现在
Orange的开发成员将将插件所依赖的第三方包发布到opm仓库 中,我们只需要通过opm --install-dir=./ get zhangbao0325/orangelib就可以将所有第三方依赖下载下来,目前看来是一个不错的解决办法。但是也存在一个问题,由于维护这个仓库的人员跟插件的贡献者并不是同一个人,所有有可能会导致他维护提供的三方依赖包不是完全正确的,我在这个过程中遇到了几个问题,详情参看 #280 #281。
Install Orange
- 安装最新版本的
OpenResty,注意在编译OpenResty的时候需要添加上--with-http_stub_status_module,监控插件需要统计http某些状态数据 - 将
nginx和resty命令配置到环境变量中,使用nginx -v和resty -v验证是否正常输出 - 安装 lor 框架
- 安装
MySQL - 将
install/oorange-v0.6.4.sql导入到orange库中 - 修改配置文件
一个是关于Dashboard和插件的配置文件conf/orange.conf,另一个是Nginx的配置文件conf/nginx.conf
orange.conf配置如下,请根据实际情况修改1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53{
"plugins": [ //可用的插件列表,若不需要可从中删除,系统将自动加载这些插件的开放API并在7777端口暴露
"stat",
"monitor",
"redirect",
"rewrite",
"rate_limiting",
"property_rate_limiting",
"basic_auth",
"key_auth",
"signature_auth",
"waf",
"divide",
"kvstore"
],
"store": "mysql",//目前仅支持mysql存储
"store_mysql": { //MySQL配置
"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"
},
"dashboard": {//默认的Dashboard配置.
"auth": false, //设为true,则需用户名、密码才能登录Dashboard,默认的用户名和密码为admin/orange_admin
"session_secret": "y0ji4pdj61aaf3f11c2e65cd2263d3e7e5", //加密cookie用的盐,自行修改即可
"whitelist": [//不需要鉴权的uri,如登录页面,无需修改此值
"^/auth/login$",
"^/error/$"
]
},
"api": {//API server配置
"auth_enable": true,//访问API时是否需要授权
"credentials": [//HTTP Basic Auth配置,仅在开启auth_enable时有效,自行添加或修改即可
{
"username":"api_username",
"password":"api_password"
}
]
}
}
nginx.conf中需要注意以下几个配置
- lua_package_path:需要根据本地环境配置适当修改
- resolver:DNS解析
通过
make install安装安装第三方依赖包
1
2
3
4
5cd /usr/local/orange/
opm --install-dir=./ get zhangbao0325/orangeli
luarocks install luafilesystem
luarocks install luasocket
luarocks install lrandom通过
orange start启动,执行orange help来查看哪些命令可用。内置的Dashboard可通过http://localhost:9999访问