我在AWS elastic beanstalk上有一个网络应用程序,我想在我的网络服务器前使用Varnish。我遇到的问题是弹性beanstalk会在流量需要时启动并关闭实例。每次关闭实例时,都需要向varnish实例注册,否则varnish将不知道将流量定向到该实例。
有没有办法在弹性beanstalk环境中为varnish订阅实例?
答案 0 :(得分:2)
好的,所以我之前没有使用过varnish,但我可以告诉你,使用Elastic Beanstalk,你可以指定在应用程序部署到实例之前将在每个实例上运行。
您可以在应用源目录中创建文件.ebextensions/01-register-varnish.config
。
在这里,您可以执行自定义命令,可以是在解压缩应用程序源之前或在解压缩应用程序源之后执行的自定义脚本。
此文件的示例内容:
commands:
varnish_command:
command: <command to run to register with varnish>
cwd: <working directory>
env:
<variable name>: <variable value>
ignoreErrors: true
每次在EC2实例上部署应用程序时,都会运行此命令。您可以确保此命令是幂等的,以便实例不会尝试使用varnish注册两次。
如果您希望在解压缩应用程序源之后但在部署应用程序之前执行命令,也可以使用container_commands
而不是commands
。
详细了解此主题here。