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

285
Vistas
Configuración de nginx y django para docker-compose

Tengo una configuración con nginx y django (llamado contenedor de python).

Puedo acceder a la página principal con localhost:8000 , sin embargo, no puedo obtener el archivo estático ni usar API localhost:8000/api/items

Soy newbee para nginx y django, por lo que todavía es confuso.

Estoy planeando el escenario como este belo

browser ->8000 -> nginx -> 8001 ->django

para archivo estático

django ->8000 -> nginx

es correcto??? o donde debo arreglar??

Estos son los ajustes a continuación.

docker-composer.yml

 version: '3' services: python: container_name: python build: ./python command: uwsgi --socket :8001 --module myapp.wsgi --py-autoreload 1 --logto /tmp/mylog.log expose: - "8001" nginx: image: nginx:1.13 container_name: nginx ports: - "8000:8000" volumes: - ./nginx/conf:/etc/nginx/conf.d - ./nginx/uwsgi_params:/etc/nginx/uwsgi_params - ./nginx/static:/static depends_on: - python

app_nginx.conf

 upstream django { ip_hash; server python:8001; } server { listen 8000; server_name 127.0.0.1; charset utf-8; location /static { alias /static; } location / { uwsgi_pass django; include /etc/nginx/uwsgi_params; } } server_tokens off;

uwsgi_prams

 uwsgi_param QUERY_STRING $query_string; uwsgi_param REQUEST_METHOD $request_method; uwsgi_param CONTENT_TYPE $content_type; uwsgi_param CONTENT_LENGTH $content_length; uwsgi_param REQUEST_URI $request_uri; uwsgi_param PATH_INFO $document_uri; uwsgi_param DOCUMENT_ROOT $document_root; uwsgi_param SERVER_PROTOCOL $server_protocol; uwsgi_param REQUEST_SCHEME $scheme; uwsgi_param HTTPS $https if_not_empty; uwsgi_param REMOTE_ADDR $remote_addr; uwsgi_param REMOTE_PORT $remote_port; uwsgi_param SERVER_PORT $server_port; uwsgi_param SERVER_NAME $server_name;
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Los archivos estáticos se generan en el comando de administración de django, collectstatic .

Si se ejecuta en un contenedor de django, estos archivos se generarán y estarán presentes solo en el contenedor de django. Por lo tanto, STATIC_ROOT debe compartirse con nginx, es decir, un volumen docker común montado tanto en el contenedor django STATIC_ROOT como en la ruta de archivos estáticos del contenedor nginx.

Este comando se puede usar como parte del entrypoint de punto de entrada del contenedor django para que se ejecute automáticamente en cada inicio.

 python: volumes: - static-volume:/app/static nginx: volumes: - static-volume:/static volumes: static-volume:

O los archivos estáticos se pueden generar y proporcionar a nginx /static de otra manera, es decir, como un artefacto durante la compilación/implementación de ci.


O puede usar whitenoise y hacer que django sirva sus archivos estáticos (pero no los archivos multimedia).

Además, los archivos se pueden almacenar (y distribuir) en la nube como Amazon S3.

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