From a772c906aac623f52e4697467ddbbb4114f4525f Mon Sep 17 00:00:00 2001 From: keyan Date: Sun, 6 Jun 2021 20:37:54 -0400 Subject: [PATCH] try gitern's redirect code --- .ebextensions/https-redirect.config | 104 ------------------ .../elasticbeanstalk/00_application.conf | 22 ++++ 2 files changed, 22 insertions(+), 104 deletions(-) delete mode 100644 .ebextensions/https-redirect.config create mode 100644 .ebextensions/nginx/conf.d/elasticbeanstalk/00_application.conf diff --git a/.ebextensions/https-redirect.config b/.ebextensions/https-redirect.config deleted file mode 100644 index ae406ad0..00000000 --- a/.ebextensions/https-redirect.config +++ /dev/null @@ -1,104 +0,0 @@ -################################################################################################### -#### Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. -#### -#### Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file -#### except in compliance with the License. A copy of the License is located at -#### -#### http://aws.amazon.com/apache2.0/ -#### -#### or in the "license" file accompanying this file. This file is distributed on an "AS IS" -#### BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -#### License for the specific language governing permissions and limitations under the License. -################################################################################################### - -################################################################################################### -#### This configuration file configures Nginx for Node.js environments to redirect HTTP -#### requests on port 80 to HTTPS on port 443 after you have configured your environment to support -#### HTTPS connections: -#### -#### Configuring Your Elastic Beanstalk Environment's Load Balancer to Terminate HTTPS: -#### http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-elb.html -#### -#### Terminating HTTPS on EC2 Instances Running Node.js: -#### http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-nodejs.html -################################################################################################### - -files: - /etc/nginx/conf.d/proxy.conf: - owner: root - group: root - mode: "000644" - content: | - # Elastic Beanstalk Managed - - # Elastic Beanstalk managed configuration file - # Some configuration of nginx can be by placing files in /etc/nginx/conf.d - # using Configuration Files. - # http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/customize-containers.html - - - upstream nodejs { - server 127.0.0.1:8081; - keepalive 256; - } - - server { - listen 8080; - - - if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") { - set $year $1; - set $month $2; - set $day $3; - set $hour $4; - } - access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd; - access_log /var/log/nginx/access.log main; - - - location / { - set $redirect 0; - if ($http_x_forwarded_proto != "https") { - set $redirect 1; - } - if ($http_user_agent ~* "ELB-HealthChecker") { - set $redirect 0; - } - if ($redirect = 1) { - return 301 https://$host$request_uri; - } - - proxy_pass http://nodejs; - 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; - } - - gzip on; - gzip_comp_level 4; - gzip_types text/html text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; - - } - - /opt/elasticbeanstalk/hooks/configdeploy/post/99_kill_default_nginx.sh: - owner: root - group: root - mode: "000755" - content: | - #!/bin/bash -xe - rm -f /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf - if [[ -e /etc/init/nginx.conf ]] ; then - echo Using initctl to stop and start nginx - initctl stop nginx || true - initctl start nginx - else - echo Using service to stop and start nginx - service nginx stop - service nginx start - fi - -container_commands: - removeconfig: - command: "rm -f /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf /etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf" \ No newline at end of file diff --git a/.ebextensions/nginx/conf.d/elasticbeanstalk/00_application.conf b/.ebextensions/nginx/conf.d/elasticbeanstalk/00_application.conf new file mode 100644 index 00000000..b66c026e --- /dev/null +++ b/.ebextensions/nginx/conf.d/elasticbeanstalk/00_application.conf @@ -0,0 +1,22 @@ +listen 443 default_server; +location / { + set $redirect 0; + if ($server_port != 443) { + set $redirect 1; + } + if ($http_user_agent ~* "ELB-HealthChecker") { + set $redirect 0; + } + if ($redirect = 1) { + return 301 https://$host$request_uri; + } + + proxy_pass http://127.0.0.1:8080; + proxy_http_version 1.1; + + proxy_set_header Connection $connection_upgrade; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +} \ No newline at end of file