Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

449
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda