Envoy 代替nginx https://www.jianshu.com/p/0a1f67b42fdb

 

官方文档: https://www.envoyproxy.io/docs
1.6.0版官方文档: https://www.envoyproxy.io/docs/envoy/v1.6.0/


一、 编译和安装

1、 编译

Envoy使用 Bazel工具 构建系统。
为了简化初次构建以及快速入门,我们提供了一个基于Ubuntu16的Docker容器镜像,其中包含了构建静态链接Envoy所需的所有内容,请参阅 ci/README.md

目前有3个基础的编译用的镜像:
(1) envoyproxy/envoy-build 等同于 envoyproxy/envoy-build-ubuntu.
(2) envoyproxy/envoy-build-ubuntu 基于 Ubuntu 16.04 (Xenial) ,使用 GCC 5.4 compiler.
(3) envoyproxy/envoy-build-centos 基于 CentOS 7,使用 GCC 5.3.1 compiler (devtoolset-4).

构建envoy二进制文件:

# 首先 clone 代码
git clone https://github.com/envoyproxy/envoy.git
cd envoy

# 构建 dev 版本的 envoy
./ci/run_envoy_docker.sh './ci/do_ci.sh bazel.dev'

# 构建默认使用的是 envoyproxy/envoy-build-ubuntu 镜像, 如果要使用其他的镜像,则如下
IMAGE_NAME=envoyproxy/envoy-build-centos 
./ci/run_envoy_docker.sh './ci/do_ci.sh bazel.dev'

# 如果要使用代理
IMAGE_NAME=envoyproxy/envoy-build-centos 
http_proxy=http://10.0.209.105:17012 
https_proxy=http://10.0.209.105:17012 
./ci/run_envoy_docker.sh './ci/do_ci.sh bazel.dev'

# dev 版本编译后的envoy二进制文件默认位于宿主机的 /tmp/envoy-docker-build/envoy/source/exe/envoy-fastbuild
# 你可以通过变量 ENVOY_DOCKER_BUILD_DIR=~/build 更改此位置为 ~/build

# 构建 release 版本的 envoy
IMAGE_NAME=envoyproxy/envoy-build-centos 
./ci/run_envoy_docker.sh './ci/do_ci.sh bazel.release.server_only'

# release 版本编译后的envoy二进制文件默认位于宿主机的 /tmp/envoy-docker-build/envoy/source/exe/envoy
# 你可以通过变量 ENVOY_DOCKER_BUILD_DIR=~/build 更改此位置为 ~/build

# 构建 debug 版本的 envoy
IMAGE_NAME=envoyproxy/envoy-build-centos 
./ci/run_envoy_docker.sh './ci/do_ci.sh bazel.debug.server_only'

# debug 版本编译后的envoy二进制文件默认位于宿主机的 /tmp/envoy-docker-build/envoy/source/exe/envoy-debug
# 你可以通过变量 ENVOY_DOCKER_BUILD_DIR=~/build 更改此位置为 ~/build

# 使用自定义的镜像tag
IMAGE_NAME=envoyproxy/envoy-build-centos 
IMAGE_ID=latest 
./ci/run_envoy_docker.sh './ci/do_ci.sh bazel.release.server_only'

# 最终的构建命令 (IMAGE_ID=latest可选)
# 代理只是在外面执行命令时访问网络有用,在容器内编译时如果不能直接访问网络,编译仍然会失败
# 至于如何设置容器内的环境变量,以及设置哪些环境变量,待续
IMAGE_NAME=envoyproxy/envoy-build-centos 
http_proxy=http://10.0.209.105:17012 
https_proxy=http://10.0.209.105:17012 
./ci/run_envoy_docker.sh './ci/do_ci.sh bazel.release.server_only'

 

原文地址:https://www.cnblogs.com/gaoyuechen/p/10512392.html