ログインしてCookieを設定すると、エラー502が発生します。ログを読み取ると、エラーが発生します。
014/05/17 01:54:43 [error] 11013#0: *8 upstream sent too big header while reading response
header from upstream, client: 83.248.134.236, server: , request: "GET /administration
HTTP/1.1", upstream:
いくつかの高速グーグルの後、私は見つけました: http://developernote.com/2012/09/how-i-fixed-nginx-502-bad-gateway-error/
そして、fastcgi_buffersとfastcgi_buffer_sizeを異なる値に設定しようとしています。しかし、Amazon elasticbeanstalkでnginxに変数を設定するにはどうすればよいですか?
Nginxサーバーは、私のdockerインスタンスの前にあります。
また、nginx設定を変更する必要がありました。
/etc/nginx/sites-enabled/elasticbeanstalk-nginx-docker.conf
)nginxサービスを再起動します(service nginx restart
)。Ebextension設定の例は.ebextensions/01modify_nginx.config
:
container_commands:
copy:
command: "cp .ebextensions/01rewrite_nginx_config.py /opt/elasticbeanstalk/hooks/appdeploy/enact/"
make_exe:
command: "chmod +x /opt/elasticbeanstalk/hooks/appdeploy/enact/01rewrite_nginx_config.py"
これは私のプロジェクトでうまく機能しています( here は実際に動作するソースです)。
Amazonは、実際に、nginxデプロイメントファイルのステージングバージョンを編集することを推奨しています。 /tmp/deployment/config/
には、一般的な「http」コンテキストを編集するためのものと、サーバーのさまざまな側面を構成するためのものがいくつかあります。
デフォルトのプロキシサーバーにキャッシング機能をアタッチしたかったので、.ebextensions
構成ファイルを作成して#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf
を置き換えます。これは、展開中に/etc/nginx/conf.d
にコピーされます。ファイルが十分に単純であればインライン化できますが、S3にファイルを配置して、さまざまなアプリケーションを作成し、それをプルダウンして使用します。構成ファイルは次のとおりです。
commands:
01-get-nginx-conf-file:
command: aws s3 cp s3://<bucket-name>/custom-nginx.conf /home/ec2-user
container_commands:
01-replace-default-nginx-config:
command: mv -f /home/ec2-user/custom-nginx.conf /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf
Elastic Beanstalkのnginx構成を拡張する別の方法は、.ebextensions
ディレクトリ、たとえばnginx.config
次のコンテンツ:
files:
"/etc/nginx/conf.d/000_my_config.conf":
content: |
upstream nodejsserver {
server 127.0.0.1:8081;
keepalive 256;
}
server {
listen 8080;
location / {
proxy_pass http://nodejsserver;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_set_header Host $Host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /myconfig {
proxy_pass http://my_proxy_pass_Host;
}
}
/etc/nginx/conf.d/000_my_config.conf
は、Elastic Beanstalk EC2インスタンスで作成されるファイル名です。デフォルトでは、この構成はファイル/etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
。したがって、接頭辞000を付けると、設定が最初に考慮されることが保証されます。
コンテンツは、デフォルトのnginx設定(/etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf
もう一度)、その後、独自の構成でカスタマイズします。
よりクリーンなアプローチ(JavaまたはElastic BeanstalkのGoプラットフォームを使用している場合)は、.ebextensionsのサブフォルダーに希望する変更を含むnginx .confファイルを含めることです。
これで、nginx.confファイルを。ebextensions/nginxフォルダーに配置して、Nginxの設定を上書きできます。また、構成ファイルを。ebextensions/nginx/conf.dフォルダーに配置して、プラットフォームが提供するNginx構成に含めることもできます。