环境(linux虚拟机)

  • 准备工作

    • virtualboxvagrant版本不兼容会出现很多未知问题(坑),官方网站也没有介绍哪个版本对应兼容,我这里分享一个兼容性不错的版本
    • virtualbox5.2.8
    • vagrant2.1.1
    • ubuntu/xenial64下载地址
    • boxes 下载地址
    • 具体安装细节请参考Ubuntu安装docker准备篇
    • vagrant 操作虚拟机常用命令

      1. 显示当前版本 # vagrant --version 2. 列出所有Box # vagrant box list 3. 添加一个Box # vagrant box add [options] <name, url, or path> 3.1 可以从https://app.vagrantup.com/boxes/search下载各种Vagrant映像文件 # vagrant box add ubuntu/trusty64 3.2 通过指定的URL添加远程box # vagrant box add https://atlas.hashicorp.com/ubuntu/boxes/trusty64 3.3 添加一个本地box # vagrant box add {box_name} {file_path} 4. 初始化一个新VM # vagrant init ubuntu/trustry64 5. 启动一个VM # vagrant up 6. 启用SSH登陆VM # vagrant ssh 7. 查看VM当前的状态 # vagrant status 8. 关闭VM # vagrant halt 9. 从box列表移除 # vagrant box remove [name] 10. 重启虚拟机 # vagrant reload 11. 挂起虚拟机 # vagrant suspend 12. 唤醒虚拟机 # vagrant resum
  • 假设你已经安装好虚拟机(以ubuntu为例)
  • 安装docker

  • 假设你已经安装好docker
  • 我们使用docker安装kong

    • kong官网
    • Kong采用插件机制进行功能定制,插件集(可以是0或N个)在API请求响应循环的生命周期中被执行。插件使用Lua编写,目前已有几个基础功能:HTTP基本认证、密钥认证、CORS(Cross-Origin Resource Sharing,跨域资源共享)、TCP、UDP、文件日志、API请求限流、请求转发以及Nginx监控。
    • kong插件地址
    • kong文档地址

      kong安装

    • kong 安装详细

      # 创建kong-net网络 docker network create kong-net # 安装postgres docker run -d --name kong-database \ -p 5432:5432 \ -e "POSTGRES_USER=kong" \ -e "POSTGRES_DB=kong" \ -e "POSTGRES_PASSWORD=kong" \ postgres:9.6 #运行临时Kong容器迁移数据库 docker run --rm \ --link kong-database:kong-database \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ -e "KONG_PG_USER=kong" \ -e "KONG_PG_PASSWORD=kong" \ -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \ kong/kong-gateway kong migrations bootstrap # 启动Kong容器 docker run -d --name kong \ --link kong-database:kong-database \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ -e "KONG_PG_PASSWORD=kong" \ -e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \ -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \ -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \ -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ kong/kong-gateway

      注意

  • 我们是用本地访问虚拟机中docker容器,所以需要注意端口对应
docker虚拟机本地
port800080008000
port800180018001
port844384438443
port844484448444
  • 修改Vagrantfile文件并重启虚拟机
  • Kong(8000端口) 是请求进入端口,用户发送请求先到 Kong 项目的 8000 端口,kong根据配置的规则转发到真实的后台服务地址。
  • Kong(8001端口) 是管理端口,插件设置、API的增删改查、以及负载均衡等一系列的配置都是通过8001端口进行管理。

    # 本地端口host对应虚拟机端口guest config.vm.network "forwarded_port", guest: 8000, host: 8000 config.vm.network "forwarded_port", guest: 8001, host: 8001 config.vm.network "forwarded_port", guest: 8444, host: 8444 config.vm.network "forwarded_port", guest: 8443, host: 8443 config.vm.network "forwarded_port", guest: 8080, host: 8080 # 设置虚拟机静态Ip便于访问(注意IP端要和本地IP在一个网段) config.vm.network "private_network", ip: "192.168.56.2" # 设置虚拟机和本地的共享目录 config.vm.synced_folder "D:/dev/study/php/vagrant/code", "/data/www/"

    测试访问

  • 最后、浏览器访问IP:8000,如果出现{"message":"no API found with those values"} 说明安装成功。
Last modification:February 24, 2022
如果觉得我的文章对你有用,请随意赞赏