2015-03-19 2 views

ответ

1

Я сделал проект некоторое время назад, что сделал динамическое изображение изменения размера на резинке Beanstalk. Я решил сделать это в приложении Node.js, чтобы получить скорость и гибкость libvips с помощью Sharp NPM package. В конце концов это сработало, но сделать это на Beanstalk было, безусловно, тяжелой битвой.

Первая проблема, с которой мы столкнулись, заключалась в установке библиотек в системе. Нам нужны были imagemagick и libvips. Настройка скрипта в .ebextensions работает нормально, но вы не получаете большого контроля над , когда эти сценарии запускаются по отношению к вашему приложению. В нашем случае нам нужны библиотеки, установленные до запуска npm install. Это не то, как работает Beanstalk, поэтому нам нужно было сделать некоторые действительно взломанные вещи с devDependencies в package.json, а затем установить их сами в конце сценариев .ebextensions. Для вас, я думаю, это первая часть того, как вы будете устанавливать что-либо на встроенный экземпляр Nginx. Но сначала вам нужно остановить Nginx, поскольку он, вероятно, уже запущен.

Далее, Beanstalk любит сбрасывать любую конфигурацию Nginx. Более конкретно, он пытается объединить вашу конфигурацию Nginx с тем, что хочет Amazon. Я подозреваю, что это та часть, которая действительно вас укусит. В итоге мы отказались от этого, пытаясь добавить некоторые расширения кеширования. Это никогда не срабатывало, и даже если бы мы взломали что-то на месте, скорее всего, он потерпел бы неудачу, как только Amazon изменит что-то позже. Вы можете установить конфигурацию Nginx с помощью сценариев .ebextensions, но как только они будут завершены, Amazon имеет некоторый скрипт, который все равно перезаписывает конфигурацию.

То, что я получаю, это то, что вы можете взломать его на работу, но это не то, что вы хотите сделать. Эластичный бобовый стебель подходит для того, для чего он построен, и в основном ничего другого. Он также не работает так, как рекламируется, и это не что иное, как гибкая система. Кажется, он собран вместе с кучей скриптов на коробке, которые выполняют свою работу, когда они используются по назначению, но бесполезно с ними не так хорошо, как Amazon может изменить, как они функционируют в любое время.

Одна из возможностей для вас - использовать Докер. Если бы я снова должен был выполнить проект, я бы начал с Docker с самого начала, так как в теории вы можете использовать все, что захотите. Beanstalk может принимать ваши приложения Docker, и он работает иначе, чем обычное приложение Beanstalk.

Удачи вам в этом проекте!

1

Ну, оказывается, что nginx на эластичном бобовом стебле компилируется с помощью http_image_filter. Итак, это в основном случай получения конфигурации nginx в собственной конфигурации nginx beanstalk. Yep @brad - это немного выдумка. Но это не так уж плохо.

Вы можете увидеть мое решение here. В основном это скрипт python, который я изменил с this solution.

Смежные вопросы