Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

442
Views
La implementación de Beanstalk ignora mis archivos de configuración nginx en .ebextensions

Alojo mi aplicación web Java en un entorno de Elastic Beanstalk de una sola instancia y agregué varios archivos ebextension que crean correctamente archivos de configuración para mí en cada implementación. Sin embargo, no puedo encontrar una manera de hacer que Beanstalk agregue nuevas configuraciones dentro de los directorios /etc/nginx o /etc/nginx/conf.d .

Seguí los pasos descritos aquí: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-java.html

La estructura de mi paquete de implementación se ve así:

 $ zip -r deploy.zip api-1.0-SNAPSHOT-all.jar .ebextensions adding: api-1.0-SNAPSHOT-all.jar (deflated 11%) adding: .ebextensions/ (stored 0%) adding: .ebextensions/ssl-certificates.config (deflated 37%) adding: .ebextensions/https-instance-securitygroup.config (deflated 38%) adding: .ebextensions/nginx/ (stored 0%) adding: .ebextensions/nginx/conf.d/ (stored 0%) adding: .ebextensions/nginx/conf.d/https.conf (deflated 61%)

Mis archivos son copias casi 1 a 1 de muestras en la guía anterior.

Durante la implementación, mis dos archivos *.config se ejecutan correctamente, pero falta /etc/nginx/conf.d/https.conf . Traté de solucionar el problema eliminando el directorio .ebextensions/nginx y reemplazándolo con otro archivo .config que crea /etc/nginx/conf.d/https.conf desde cero, pero esto no ayudó y el archivo aún estaba perdido.

Hice ssh en mi instancia de EC2 y esto es lo que encontré en /var/log/eb-engine.log :

 2020/05/03 19:42:37.754375 [INFO] Executing instruction: configure proxy Nginx 2020/05/03 19:42:37.754393 [WARN] skipping nginx folder under .ebextensions 2020/05/03 19:42:37.754670 [INFO] No plugin in cfn metadata.

Siento que podría haberme perdido algo muy obvio aquí, pero sorprendentemente no pude encontrar ninguna solución a mi problema. ¿Pensamientos? ¡Gracias!

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Acabo de resolver el mismo problema.

puede resolver el problema fácilmente configurando la siguiente estructura de directorios.

 ~/my-app/ |-- readme.md |-- .ebextensions/ | |-- options.config # Option settings | -- cloudwatch.config # Other .ebextensions sections, for example -- .platform/ -- nginx/ # Proxy configuration |-- nginx.conf -- conf.d/ -- custom.conf -- elasticbeanstalk |-- server.conf

para obtener más información, consulte esta url

my /var/log/eb-engine.log mostró la siguiente línea de mensaje.

 Running command /bin/sh -c cp -rp /var/app/staging/.platform/nginx/. /var/proxy/staging/nginx
over 4 years ago · Santiago Trujillo Report

0

Estaba enfrentando el mismo problema. La solución es colocar el archivo https.conf en la ruta .platform/nginx/conf.d/https.conf y comprimirlo en el paquete de implementación.

Ver "Configuración de proxy inverso" en este enlace .

over 4 years ago · Santiago Trujillo Report

0

Siento que soy la única persona en Internet con este problema. ;-)

Después de profundizar un poco más en los registros, me di cuenta de que Beanstalk simplemente sobrescribe mi configuración de nginx al final de un proceso de implementación. Esto significó que todos los archivos que crearon mis .ebextensions se perdieron.

No he logrado encontrar una solución "adecuada", pero lo solucioné con un enlace posterior a la implementación. Mi archivo de configuración de nginx ahora se genera en /home/ec2-user , en lugar de /etc/nginx , así:

 files: /home/ec2-user/https.conf: content: | server { listen 443; server_name localhost; ssl on; ssl_certificate /etc/pki/tls/certs/server.crt; ssl_certificate_key /etc/pki/tls/certs/server.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_pass http://localhost:5000; 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; proxy_set_header X-Forwarded-Proto https; } }

Y luego en .platform/hooks/postdeploy/99_hack_nginx.sh (asegúrese de que este directorio esté incluido en su paquete de implementación, de la misma manera que .ebextensions ):

 cp /home/ec2-user/https.conf /etc/nginx/conf.d sudo systemctl reload nginx

Asegúrese de que tiene un modo adecuado:

 chmod +x .platform/hooks/postdeploy/99_hack_nginx.sh

Implemente y disfrute de su tráfico HTTPS.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!