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'

 

上一篇:Lambda表达式 简介 语法 示例


下一篇:UIView的alpha、hidden和opaque属性之间的关系和区别