Es war vielleicht nicht notwendig, es zusammenzufassen, aber ich bin ziemlich süchtig danach, also würde ich es gerne aufschreiben.
Wir gehen davon aus, dass das grundlegende SSL-Setup abgeschlossen ist. Bitte überprüfen Sie erneut, ob Elastic Load Balancer (ELB) mit der Elastic Beanstalk (EB) -Umgebung verknüpft ist und das entsprechende SSL-Zertifikat und der HTTPS / Port für ELB festgelegt sind.
Da ELB das Protokoll der empfangenen Anforderung im X-Forwarded-Proto-Header speichert, kann die HTTP → HTTPS-Umleitung durch Lesen der folgenden Einstellungen im Nginx-Serverblock realisiert werden.
if ($http_x_forwarded_proto != 'https') {
rewrite ^ https://$host$request_uri? permanent;
}
Wie überschreiben Sie die wesentlichen Nginx-Einstellungen? Go/ [Java SE](http://docs.aws.amazon.com/ja_jp/ elasticbeanstalk / latest / dg / java-se-platform.html) In der Umgebung wird ein Mechanismus eingeführt, mit dem die Nginx-Einstellungen leicht manipuliert werden können. Die Einstellmethode ist für beide gleich.
Wenn Sie eine Datei mit dem Namen ".ebextensions / nginx / nginx.conf" erstellen und im Stammverzeichnis der Anwendung ablegen, die mit EB bereitgestellt werden soll, überschreibt diese "nginx.conf" "/ etc / nginx / nginx.conf" auf EC2. Getan werden.
Wenn Sie die Dateien in ".ebextensions / nginx / conf.d / *. Conf" ablegen, werden diese Dateien "/ etc / nginx / conf.d / elasticbeanstalk" und "nginx.conf" kopiert Wenn Sie es nicht überschrieben haben, im server {}
Block darin, oder wenn Sie nginx.conf
überschrieben haben, schreiben Sie include conf.d / elasticbeanstalk / *. Conf;
Es wird gelesen, aber aus irgendeinem Grund wird die if-Anweisung nicht zugelassen und beim Lesen der Nginx-Einstellungsdatei abgespielt, wenn Sie die Datei, die die obigen Umleitungseinstellungen beschreibt, als ".ebextensions / nginx / conf.d / 02_proxy.conf" einfügen.
Bitte beachten Sie, dass wenn Sie CodeBuild beißen und vergessen, .ebextensions bei der Ausgabe von Artefakten auszugeben, diese natürlich nicht kopiert werden.
Aus diesem Grund funktioniert das Schreiben in die enthaltene Datei nicht, sodass die vorhandene Nginx-Konfigurationsdatei überschrieben wird. Wenn Sie die obigen Umleitungseinstellungen in den Block "server {}" schreiben, ist dies wie folgt.
# Elastic Beanstalk Nginx Configuration File
user nginx;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
worker_processes auto;
worker_rlimit_nofile 33193;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
include conf.d/*.conf;
map $http_upgrade $connection_upgrade {
default "upgrade";
}
server {
listen 80 default_server;
access_log /var/log/nginx/access.log main;
client_header_timeout 60;
client_body_timeout 60;
keepalive_timeout 60;
gzip off;
gzip_comp_level 4;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
# Redirect to https
if ($http_x_forwarded_proto != 'https') {
rewrite ^ https://$host$request_uri? permanent;
}
# Include the Elastic Beanstalk generated locations
include conf.d/elasticbeanstalk/*.conf;
}
}
Wenn Sie das Obige kopieren und einfügen und es als ".ebextensions / nginx / nginx.conf" speichern, sollte die HTTP → HTTPS-Umleitung aktiviert sein.
Recommended Posts