我有一個使用docker-compose部署的django後端。這個Django應用程序在前面使用了一個nginx代理。nginx不會轉發到docker-compose中的django應用程序,但它在Mac的docker-machine中運行
當我將它部署在docker-machine中,然後轉到docker-machine ip時,我正確地重定向到了django站點。
但是,當我將它部署在docker上的ubuntu機器上時,當我轉到nginx容器的ip時,我給出了默認的nginx頁面,我沒有重定向到django應用程序。 nginx容器也不會記錄任何錯誤。所有服務都在docker中運行,沒有任何錯誤。
我分享Nginx的配置文件,搬運工,撰寫文件下面
nginx.conf
server {
listen 80;
server_name omaha;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/ssl.crt;
ssl_certificate_key /etc/nginx/ssl/ssl.key;
charset utf-8;
client_max_body_size 200M;
location/{
proxy_pass http://web:8000;
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 $scheme;
}
}
nginx的dockerfile
FROM nginx
COPY conf/nginx.conf /etc/nginx/conf.d/nginx.conf
COPY certs/ /etc/nginx/ssl
泊塢窗 - 撰寫。 yml
個version: '2'
services:
nginx:
restart: always
build:
context: ./nginx/
ports:
- "80:80"
- "443:443"
volumes_from:
- web
web:
restart: always
build:
context: ./web
depends_on:
- web_ffmpeg
- postgres
- redis
- rabbitmq
expose:
- "8000"
environment:
- DEBUG=True
command: /usr/local/bin/gunicorn wsgi:application -w 2 -b :8000
web_ffmpeg:
restart: always
build:
context: ./web
depends_on:
- postgres
- redis
- rabbitmq
expose:
- "8000"
command: /usr/local/bin/celery -A trigger worker -l info
postgres:
restart: always
image: postgres:latest
expose:
- "5432"
volumes:
- pgdata:/var/lib/postgresql/data/
redis:
restart: always
image: redis:latest
expose:
- "6379"
volumes:
- redisdata:/data
rabbitmq:
restart: always
image: rabbitmq:3-management
environment:
RABBITMQ_DEFAULT_USER: 'adminuser'
RABBITMQ_DEFAULT_PASS: 'xxxxxxxxx'
RABBITMQ_DEFAULT_VHOST: 'myvhost'
ports:
- "15672:15672"
expose:
- "5672"
volumes:
elk-data:
pgdata:
redisdata:
web-data:
web-ffmpeg-data:
軟件版本:
我連中兩個工作站之間的匹配所有的版本。該版本是
- 泊塢窗1.12.5,1.13.0
- 泊塢窗,撰寫1.11.0,1.11.1
我試過的所有版本組合,仍然存在同樣的問題。
在docker-machine和直接在ubuntu機器上使用docker-compose有什麼不同。