Я вижу указания о том, как создать новый AMI, но я даже не вижу, где находится tomcat. Текущим ами на момент написания является ami-1a249873 для развертывания tomcat 7
Как вы включаете gzip html/javascript/css на amazon beanstalk и tomcat
Ответ 1
Я сам отвечу. Просто так, чтобы все было ясно, вы МОЖЕТЕ подключиться к своим экземплярам EC2, даже если они управляются beanstalk. Это полезно, потому что вы видите, где находятся вещи. В этом случае я не знал, что Apache использовался в качестве веб-сервера для tomcat и должен был его искать, но вы можете найти его здесь как сегодня:
/etc/httpd
Вносить изменения после того, как вы найдете такую информацию:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers.html
Если вы создаете папку с именем .elasticbeanstalk в корне вашего проекта и затем создаете файл с именем myapp.config.
Настройка Apache:
cp conf/httpd/conf.d/enabledeflate.conf /etc/httpd/conf.d/enabledeflate.conf
Затем создайте файл enabledeflate.conf примерно таким образом:
SetOutputFilter DEFLATE
# mod_deflate configuration
<IfModule mod_deflate.c>
# Restrict compression to these MIME types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xml+rss
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
Несколько заметок:
Возможно, вам придется перезапустить apache при первом развертывании.
Убедитесь, что вы положили .elasticbeanstalk в корень вашего файла войны (или git repo)
Ответ 2
Нет лучшего места, чем http://www.tonmoygoswami.com/2013/05/how-to-enable-gzip-on-amazon-elastic.html
для вашего ответа
Вы можете перезагрузить сервер из https://console.aws.amazon.com/elasticbeanstalk/
нажмите на имя приложения, а затем в правом верхнем углу нажмите кнопку раскрывающегося списка действий и перезапустите сервер.
Ответ 3
Добавление к Джеймсу ответа
Более чистый способ - создать файл конфигурации
.ebextensions/wsgi_custom.config
И поместите это там
files:
"/etc/httpd/conf.d/wsgi_custom.conf":
mode: "000644"
owner: root
group: root
content: |
WSGIPassAuthorization On
LoadModule deflate_module modules/mod_deflate.so
SetOutputFilter DEFLATE
# mod_deflate configuration
<IfModule mod_deflate.c>
# Restrict compression to these MIME types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xml+rss
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
Я также добавил WSGIPassAuthorization On, если вам нужно использовать это для django-rest-framework, используя jwt auth