版本号 | 作者 | 备注 | |
---|---|---|---|
v1.0.0 | 山人 | 8416837 | kong1.2.1 |
KONG.基于Nginx的高性能网关,名称来源于著名作品《King Kong》,象征肉盾坚强耐用(脑补的).
wget
命令亦可xx.tar.gz
tar xvzf postgresql-9.5.5.tar.gz
,目录如下./configure --help # 查看帮助
./configure --prefix=/usr/local/psqlcc # 执行配置,且指定编译目录
./configure --prefix=/usr/local/psqlcc
若配置失败,请执行↓
yum install gcc
yum install readline-devel
yum install zlib-devel
配置成功,编译。
make # 如果make进入死循环,请修正服务器时间 date -s 2019-08-06 date -s 18:30:30
make install
useradd postgres # 新建用户,因为root不能执行postgresql
chown -R postgres:postgres /usr/local/psqlcc/ # 给新用户授权
su - postgres # 切换用户
sudo vim ~/.bash_profile # 编辑配置,以便于命令执行
source ~/.bash_profile
mkdir -p /usr/local/psqlcc/data # 建目录
which psql # 检验
psql -V #检验
配置内容
PGHOME=/usr/local/psqlcc
PGDATA=/usr/local/psqlcc/data
export PGDATA
PATH=$PATH:$HOME/bin:$PGHOME/bin
sudo chown -R postgres:postgres /usr/local/psqlcc/data
initdb
没创建目录,执行mkdir -p /usr/local/psqlcc/data/pg_xlog
创建
空间不足,更改初始化数据目录initdb -D /home/project/postgresql/data/
,成功↓
注意这句:pg_ctl -D /home/project/postgresql/data/ -l logfile start
,后面要用
cd /home/project/postgresql/data/ 查看安装目录
更新pg_hba.conf/postgresql.conf
pg_hba.conf
postgresql.conf 改监听
开放5432端口
pg_ctl start -D /home/project/postgresql/data/ -l /home/project/postgresql/data/pg_xlog/pg_server.log # 使用postgres账号启动,root不可启动
psql # 检验
psql --help
# 切换用户
su postgres
# 停止
pg_ctl stop -D /home/project/postgresql/data/
CREATE USER kong_user WITH PASSWORD 'kong_pass';
create database "kong_db";
GRANT ALL PRIVILEGES ON DATABASE "kong_db" to kong_user;
The Apache Cassandra database is the right choice when you need scalability and high availability without compromising performance. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data. Cassandra's support for replicating across multiple datacenters is best-in-class, providing lower latency for your users and the peace of mind of knowing that you can survive regional outages.
https://docs.konghq.com/install/centos/?_ga=2.200831720.757660222.1565099763-2092167039.1564731930
抑或wget
sudo yum install epel-release # 安装前提软件
sudo yum install kong-1.2.1.*.noarch.rpm --nogpgcheck # 安装kong
mv /etc/kong/kong.conf.default /etc/kong/kong.conf
vim /etc/kong/kong.conf
kong migrations up # 初始化
cd /usr/local/share/lua/5.1/kong/plugins/ # 插件位置
这台机启动不了kong,重装。`yum -y remove kong
$ sudo yum update -y
$ sudo yum install -y wget
$ wget https://bintray.com/kong/kong-rpm/rpm -O bintray-kong-kong-rpm.repo
$ export major_version=`grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release | cut -d "." -f1`
$ sed -i -e 's/baseurl.*/&\/centos\/'$major_version''/ bintray-kong-kong-rpm.repo
$ sudo mv bintray-kong-kong-rpm.repo /etc/yum.repos.d/
$ sudo yum update -y
$ sudo yum install -y kong
执行kong start
没反应,重装了几次几个版本也不行,该机子kong普通部署不成功,可能这台CENTOS6.10配置有点问题,另一台6.8可以安装启停成功,如图↓
帅气的King Kong↓
概念 | 解释 | 备注 |
---|---|---|
upstream | 对上游服务器的抽象 | upstream 和 target :1 对 n |
target | 代表了一个物理服务,是 ip + port 的抽象 | |
service | 抽象层面的服务,他可以直接映射到一个物理服务(host 指向 ip + port),也可以指向一个 upstream 来做到负载均衡 | service 和 upstream :1 对 1 或 1 对 0 (service 也可以直接指向具体的 target,相当于不做负载均衡) |
route | 路由的抽象,他负责将实际的 request 映射到 service | service 和 route:1 对 n |
插件 | 部分插件,可能是全局的,影响范围是整个 Kong 服务;大多数插件都是装在 service 或者 route 之上。这使得插件的影响范围非常灵活,我们可能只需要对核心接口进行限流控制,只需要对部分接口进行权限控制,这时候,对特定的 service 和 route 进行定向的配置即可 |
curl -i -X POST --url http://192.168.4.152:8001/services/ --data 'name=example-service' --data 'url=http://mockbin.org' # 添加服务,指向设定的url
curl -i -X POST --url http://192.168.4.152:8001/services/example-service/routes --data 'hosts[]=example.com' # 添加路由。example.com后续会用到
curl -i -X GET --url http://192.168.4.152:8000/ --header 'Host: example.com' # 检验。example.com对应创建路由时的hosts[]
命令日志依次↓
转发成功,成功转发到mockbin.org
再添加一个天气接口,配置如下,与上文类似。
curl -i -X POST --url http://192.168.4.152:8001/services/ --data 'name=weather-service' --data 'url=https://www.tianqiapi.com/api/' # 添加服务,指向设定的url
curl -i -X POST --url http://192.168.4.152:8001/services/weather-service/routes --data 'hosts[]=tianqiapi.com' # 添加路由。tianqiapi.com后续会用到.tianqiapi.com改成163.com也好使.
curl -i -X GET --url http://192.168.4.152:8000/ --header 'Host: tianqiapi.com' # 检验。tianqiapi.com对应创建路由时的hosts[]
转发成功,但是响应码是301
↓
添加路由时,host改为tianqiapi.com
就成功了↓
换百度.com,转发成功↓
根据路径添加路由
curl -i -X POST --url http://192.168.4.152:8001/services/ --data 'name=cc-weather-service' --data 'url=https://www.tianqiapi.com/api/' # url带路径,api/注意/必有
curl -i -X POST --url http://192.168.4.152:8001/services/cc-weather-service/routes --data 'paths[]=/ccapi' # 路径路由
curl -i -X POST --url http://192.168.4.152:8001/services/new-weather-service/routes --data 'paths[]=/api_2' # 加多一个路径路由
curl -i -X POST --url http://192.168.4.152:8001/apis/ --data 'name=example-api' --data 'hosts=example.com' --data 'upstream_url=http://www.baidu.com'
AngularJS项目,亦可Docker部署,先本地运行看看效果.
git clone https://github.com/pantsel/konga.git
cd konga目录
cnpm i
cnpm start # 启动前端
http://ip:8001
,跨机器需要开启/etc/kong/kong.conf
里的listen ip.Kong-Dashboard versions | Kong versions | Node versions |
---|---|---|
1.x.x | = 0.6,< 0.10 | |
2.x.x | 0.10 | |
3.0.x | = 0.9, <0.12 | >= 6.0.0 |
3.1.x, 3.2.x | = 0.9, <0.13 | — |
3.3.x, 3.4.x | = 0.9, <0.14 | — |
3.5.x | = 0.9, <0.15 | — |
3.6.x | = 0.9, <2.0.0 | — |
nohup kong-dashboard start --kong-url http://192.168.4.152:8001 --basic-auth admin=123456 & # 默认8080端口
类似,略
待续
docker pull fagongzi/gateway:v2.6.0-RC
docker run -d -p 80:80 -p 9093:9093 -p 9092:9092 fagongzi/gateway:v2.6.0-RC