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

1.1K
Views
Cómo acceder y establecer variables de entorno en cualquier producción (Nginx y Gunicorn)

Estoy tratando de establecer variables de entorno para un proyecto Django servido por Nginx y Gunicorn en Ubuntu. Las variables están configuradas para el usuario de Ubuntu y puedo ver el valor usando printenv VAR_EMAIL .

Pero cuando uso la configuración de django, no funciona, al usarlos como os.environ['VAR_EMAIL'] , esto no obtiene el valor de la variable en producción y el servidor no funciona.

Sin embargo, esto funciona en el lado de Desarrollo.

ACTUALIZACIÓN 1 de mayo de 2020: utilicé systemd y pasé la variable como esta en el archivo gunicorn.service. funciona bien con Variables de entorno en desarrollo. ¿Es os.environ['var_name'] la forma correcta de acceder a eso? También probé os.environ.get('var_name') como vi en un video que environ tiene .get() para acceder al valor. Lo intentaré de nuevo, tal vez cometí algún error. No dude en solicitar cualquier información requerida. Archivo de servicio

RESPONDIDO - Fue un error de mi parte.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

¿Qué estás usando para supervisar y ejecutar el proceso gunicorn en Ubuntu? Si no está usando ninguno, le recomiendo que use systemd , hay una pequeña guía sobre cómo configurar en los documentos de gunicorn: https://docs.gunicorn.org/en/stable/deploy.html#systemd

Después de eso, puede configurar las variables de entorno en el archivo de configuración de systemd haciendo lo siguiente, en la sección [Service] del archivo de configuración de systemd:

 [Service] Environment="VAR_EMAIL=var-email" Environment="ANOTHER_VAR=another-var"

También puede usar la directiva EnvironmentFile si prefiere tener estas variables en un archivo separado: https://www.freedesktop.org/software/systemd/man/systemd.exec.html#EnvironmentFile=

over 4 years ago · Santiago Trujillo Report

0

Ahora, después de muchos problemas que enfrenté debido a los cuales simplemente codifiqué las variables en el código durante mucho tiempo, la solución a la que llegué está en esta actualización. Lea la respuesta completa para obtenerla.

Esta es una actualización, es extraño cómo se transmiten las variables de entorno. Cada variable requiere el siguiente método, pero también debe agregar las variables al etc/environment y agregar las variables de entorno también.

Las variables de entorno debían configurarse en una sola línea con spaces separaban cada par clave+valor. (No como se menciona en la Respuesta seleccionada) Sin embargo, no se pudo hacer que funcionara con el supervisor.

Entonces, la forma correcta de hacerlo es como se menciona en esta Documentación para Systemd: EnvironmentsSystemd

 Environment = "KEY_NAME_1=VALUE_KEY_1" "KEY_NAME_2=VALUE_KEY_2" ....

Luego Usuario PassEnvironment para activar aquellos en esa sesión. De esta manera, con PassEnvironment puede tener diferentes variables de entorno activas para diferentes servicios.

 PassEnvironment = KEY_NAME_1 KEY_NAME_2 ....

Estos son los nombres de las claves separados por espacios. Esto debería ayudarlo a configurar systemd . Verifique la respuesta seleccionada para todos los enlaces.

Esto no funcionará: Captura de pantalla de respuesta

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!