私はAWS Elastic Beanstalk Tomcat 8 + Java 8インスタンスにWARとしてSpringブートRESTアプリケーションをデプロイしました。春ブーツでapplication.properties
のみ組み込みのTomcatコンテナに適用されるためElasticBeanstalk Tomcatインスタンスの実行時に設定を更新します
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/css,..."
:その後、私は次のように設定し(Tomcat server.xmlに適用されます)を設定する必要があることに気づきました。現在、Elastic Beanstalkインスタンスのプラットフォームタイプを変更するのは時期尚早です。 eb config
を使用して、Elastic Beanstalk CLIから設定を更新する方法はありますか?私はこれを見ていたAWS page、それは可能性がありますように見えます。デイブ・メープル@からの回答に
更新2017年1月16日 おかげで私は、Elastic Beanstalkでのドキュメントの関連部分に探し始めました。
まず、Apacheがデフォルトのプロキシサーバーであることがわかりました。私はそれをnginxに変更することができたかもしれませんが、私はそのルートに行くための特別な正当性はありませんでした。
次に、.ebextensions
フォルダをSpringブートプロジェクトの最上位に追加しています。私はを汚染したくない私のコードベースはクラウドプロバイダー固有の構成ファイルを持っていますが、最も低い垂木であるようです。だから私はそれに行きました。
私は、次のような階層を追加しました:のtomcat-settings.configの
MySpringBootProject
|
+- src
|
+- main
|
+- resources
|
+- ebextensions
|
+- httpd
| |
| +- conf.d
| |
| +- enable_mod_deflate.conf
|
+- myapp.config
|
+- tomcat-settings.config
内容myapp.configの
option_settings:
aws:elasticbeanstalk:environment:proxy:
GzipCompression: 'true'
内容
を enable_mod_deflate.confの10の内容
# 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
AddOutputFilterByType DEFLATE image/png
AddOutputFilterByType DEFLATE image/gif
AddOutputFilterByType DEFLATE image/jpeg
# Level of compression (Highest 9 - Lowest 1)
DeflateCompressionLevel 9
# Netscape 4.x has some problems.
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
のpom.xml(生成されたWARファイルのトップレベルで.ebextensions
フォルダを設定するため)に次の行を追加します。
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/main/resources/ebextensions</directory>
<targetPath>.ebextensions</targetPath>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
私はを見たので、私は、これが働いている可能性が宣誓レスポンスヘッダー...数回だけ。何が起きているのか?
この設定変更は、すでに設定され、現在実行中のインスタンスで適用できますか。私はアプリケーションを再起動する余裕があります。私が避けようとしているのは、これを自分のコードベースに追加することです。 –
標準的な方法は.ebextensionsを使用することです(デプロイメントパッケージを更新する必要があります)。 –
私は見ましたが、 'eb config'や' eb setenv'でこれを行う方法は見当たりません。これらのコマンドは 'aws:elasticbeanstalk:environment'名前空間内の設定の変更をサポートしていないようです。 –