sve*_*iss 10 nginx websocket socket.io docker amazon-elastic-beanstalk
尝试在单个实例上运行的AWS Elastic Beanstalk中部署Docker镜像.除了我通过Socket.IO使用的WebSockets之外,一切正常.
另一篇文章建议删除nginx,但这不再可能,或者只是不能用于使用Docker进行部署.
我有一个python脚本,可以更改nginx配置以允许WebSocket连接.当我ssh到实例并运行该脚本时,它可以工作.但是,当运行ebextensions时,nginx配置的那部分还不存在,所以我无法自动运行这个脚本.
如果你想自己尝试一下,我正在尝试部署databench_examples.当你部署这个是工作eb init和eb start,然后使用SSH连接实例,去/var/app/current和运行sudo python nginx_socketio_conf.py这改变了nginx的配置文件.如果它不起作用,则在运行simplepi分析时,您会在浏览器控制台中看到Socket.IO握手中的500错误.
小智 6
你运行ebextensions时,nginx配置文件不存在是正确的.原因如下:配置文件是在部署应用程序后动态生成的,因为直到容器停止后才知道Docker容器的端口映射.因此,ebextensions执行的令人敬畏的Python脚本没有配置文件可供操作.
另一种传统方法不起作用,即将nginx配置文件写入/etc/nginx/conf.d,因为该location指令必须存在server于sites_enabled配置中的块内.所以这是不行的.
我创建了一个PR来说明一种可行的方法:https://github.com/svenkreiss/databench_examples/pull/3这是一种未记录的技术,它将Python/nginx变异脚本放到Elastic Beanstalk的hooks目录中的正确位置.然后在生成nginx配置后立即由Elastic Beanstalk执行该脚本(Elastic Beanstalk将按字母顺序在hooks子目录中运行可执行脚本,因此为01_前缀.
谢谢,
埃文
| 归档时间: |
|
| 查看次数: |
4195 次 |
| 最近记录: |