那天在一个微信公众号上,看见了一篇关于API Gateway的文章,文章上描述的是关于kong来实现的。之前工作时也曾想过把kong给部署起来跑跑看,由于时间紧张,那时没弄成功,没想到今天居然又在微信上看到了它。不行,微信上居然都把它给普及开了,看来我必须得要搞定它了。通过Docker和搜索后,终于还是搞定了它,初步用了下后,由于它没有UI界面,用起来感觉不咋顺畅。在搜索kong的过程中,无意间看到了一篇关于orange网关的文章,浏览了下,还带界面的,感觉顿时高大上,故在此决定一定要拿下它,把这个orange先部署起来再说。
下文为安装orange的主要步骤。
安装环境:ubuntu(在网上下的全新的ubuntu-16.04-desktop-amd64.iso镜像)
查看操作系统信息:
haiyang@ubuntu:~$ uname -a
Linux ubuntu 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
haiyang@ubuntu:~$
Orange是OpenResty的一个扩展模块,所以得先要安装OpenResty
主要参考centOs中orange的安装步骤
http://www.linuxdiyf.com/linux/32236.html
OpenResty安装
下载源码包
http://openresty.org/cn/download.html
(本文下载的是openresty-1.9.7.4.tar.gz )
安装相关依赖包
$ apt-get install libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl make build-essential
安装
$ tar -zxvf openresty-1.9.7.4.tar.gz
$ cd openresty-1.9.7.4
$ ./configure --prefix=/opt/openresty\ //安装到/opt/openresty
--with-luajit\ //激活luajit
--without-http_redis2_module \ //禁用http_redis2_module
--with-http_iconv_module //激活http_iconv_module
$ make
$ make install
设置环境变量
在/etc/profile文件中加入export PATH=$PATH:/opt/openresty/nginx/sbin
然后重启服务或执行source /etc/profile 使配置失效
注:由于在安装openresty已经安装了nginx,为了不影响老的nginx我并没有设置这个环境变量,而是在.bashrc文件中加入了alias onginx=’sudo /opt/openresty/nginx/sbin/nginx’ 这行,因为本人主要是用来学习openresty
注意:由于openResty是一个基于nginx+lua的WEB服务器,所以安装此软件的过程中也会将nginx一并安装好,配置时一定得要把http_stub_status_module模块加上,因为orange的启动脚本中要用到它
Orange插件安装前准备
lor安装
安装orange之前需要先lor框架
Lor是一个运行在OpenResty上的基于Lua编写的Web框架。Lor可用来编写HTTP API Server或是传统的web网站。
安装步骤和其它软件安装步骤一样,将源码clone下来后,直接编译安装即可
git clone https://github.com/sumory/lor
cd lor
make install
orange源码准备
再将orange源码clone下来,先准备好
git clone https://github.com/sumory/orange
MariaDB安装
MariaDB是MySQL源代码的一个分支,跟mysql大致上是一样的
参考:http://www.linuxdiyf.com/linux/29034.html
之后操作如下内容:
mysql -u root
CREATE DATABASE orange CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'orange'@'%' IDENTIFIED BY 'orange';
GRANT ALL PRIVILEGES ON orange.* TO 'orange'@'%';
FLUSH PRIVILEGES;
完成orange数据库的创建与账号创建
然后导入orange的数据库数据脚本
mysql -u orange -porange orange < orange-v0.6.4.sql
其中orange-v0.6.4.sql指的是orange源码目录上install下的SQL文件,根据需要的安装的orange版本选择指定的
Orange配置与启动
orange配置
orange的配置文件在orange的conf目录下,orange.conf即是
启动之前,可通过orange.conf对orange进行一些配置
"store": "mysql",
"store_mysql": {
"timeout": 5000,
"connect_config": {
"host": "127.0.0.1",
"port": 3306,
"database": "orange",
"user": "orange",
"password": "orange",
"max_packet_size": 1048576
},
"pool_config": {
"max_idle_timeout": 10000,
"pool_size": 3
},
"desc": "mysql configuration"
}
首次启动时,主要修改下数据库的连接信息即可
orange启动
执行start.sh脚本即可
root@ubuntu:/home/haiyang/Downloads/orange# sh start.sh
执行启动命令后,在浏览器打开localhost:9999,即进入orange的主页