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

281
Views
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 answers
Answer question

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 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!