Install Kong Api gateway
CentOS 系統(tǒng)直接yum安裝
- 配置yum源
- 直接下載repo文件
- 直接下載repo文件
cd /etc/yum.repos.d/
wget https://bintray.com/mashape/kong-rpm-el7-0.9.x/rpm -O bintray-mashape-kong-rpm-el7-0.9.x.repo
```
- 或者直接編輯repo文件
cat>/etc/yum.repos.d/bintray-mashape-kong-rpm-el7-0.9.x.repo<<EOF
[bintraybintray-mashape-kong-rpm-el7-0.9.x]
name=bintray-mashape-kong-rpm-el7-0.9.x
baseurl=https://dl.bintray.com/mashape/kong-rpm-el7-0.9.x
gpgcheck=0
repo_gpgcheck=0
enabled=1
EOF
```
yum clean all && yum makecache
yum install kong -y
安裝PostgreSQL9.4數(shù)據(jù)庫(kù)
kong支持PostgreSQL 9.4+ 和 Cassandra 2.2.x 數(shù)據(jù)庫(kù),這里以PostgreSQL為例
- 配置yum源碼,參考文檔Repository Packages
yum install https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-3.noarch.rpm
yum makecache
yum install postgresql94-server postgresql94-contrib -y
* 創(chuàng)建postgres系統(tǒng)用戶(hù),yum安裝的又自動(dòng)創(chuàng)建用戶(hù)
shell> id postgres
uid=26(postgres) gid=26(postgres) 組=26(postgres)
* 初始化數(shù)據(jù)目錄
先修改下家目錄
rsync -avP /var/lib/pgsql /home/
usermod -d /home/pgsql postgres
su - postgres
/usr/pgsql-9.4/bin/initdb -D /home/pgsql/data
postgresql 安裝到了 /usr/pgsql-9.4,可以考慮加到PATH,export PATH=$PATH:/usr/pgsql-9.4/bin
修改下systemctl服務(wù)腳本
sed -i 's@^Environment=PGDATA=.*$@Environment=PGDATA=/home/pgsql/data@g' /usr/lib/systemd/system/postgresql-9.4.service
* 啟動(dòng)服務(wù)
`systemctl start postgresql-9.4`
* postgresql 連接配置
配置項(xiàng) | 默認(rèn)值 | 說(shuō)明
--- | --- | ---
listen_addresses | localhost | * - 允許所有可用連接<br/>0.0.0.0 - 允許所有ipv4連接<br/>:: - 允許所有ipv6鏈接
port | 5432 | 服務(wù)偵聽(tīng)的端口
max_connections | 100 | 最大連接數(shù)
superuser_reserved_connections | 3 | 必須小于 max_connections,專(zhuān)為superuser保留的連接數(shù)
unix_socket_directories | /tmp | socket 監(jiān)聽(tīng)目錄,多個(gè)目錄用,隔開(kāi),空字符串則禁用socket連接
unix_socket_group | 默認(rèn)為空 | 默認(rèn)使用服務(wù)用戶(hù)的所有組
unix_socket_permissions | 0777 | socket文件的權(quán)限
* 安全與驗(yàn)證配置
配置項(xiàng) | 默認(rèn)值 | 說(shuō)明
--- | --- | ---
authentication_timeout | 1m | 驗(yàn)證超時(shí)時(shí)間
ssl | off | 是否開(kāi)啟ssl加密連接
ssl_ca_file | 默認(rèn)為空 | 如使用相對(duì)路徑則是相對(duì)于PGDATA目錄
ssl_cert_file | server.crt | 如使用相對(duì)路徑則是相對(duì)于PGDATA目錄
ssl_crl_file | 默認(rèn)為空 | 如使用相對(duì)路徑則是相對(duì)于PGDATA目錄
ssl_key_file | server.key | 如使用相對(duì)路徑則是相對(duì)于PGDATA目錄
ssl_ciphers | `HIGH:MEDIUM:+3DES:!aNULL` |
password_encryption | on | 在CREATE USER 或 ALTER ROLE 未指定 ENCRYPTED/UNENCRYPTED 時(shí)是否加密密碼
db_user_namespace | off | 是否啟用單庫(kù)單用戶(hù)名
### 為kong創(chuàng)建數(shù)據(jù)庫(kù)與用戶(hù)
CREATE ROLE kong LOGIN ENCRYPTED PASSWORD 'xxxxxxxx' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE kong_db WITH ENCODING='UTF8' OWNER=kong;
## 配置kong
cd /etc/kong/
cp kong.conf.default kong.conf
編輯以下內(nèi)容
database = postgres # 數(shù)據(jù)庫(kù)類(lèi)型 postgres/cassandra
pg_host = 127.0.0.1 # 數(shù)據(jù)庫(kù)主機(jī)地址
pg_port = 5432 # 數(shù)據(jù)庫(kù)偵聽(tīng)端口
pg_user = kong # 用戶(hù)名
pg_password = password # 密碼
pg_database = kong # 數(shù)據(jù)庫(kù)名
pg_ssl = off
pg_ssl_verify = off
### 啟動(dòng)kong服務(wù)
kong start
驗(yàn)證下
curl 127.0.0.1:8001
### 關(guān)閉kong服務(wù)
kong stop
### 重載kong服務(wù)
kong reload