Merhaba;
DigitalOcean Droplet’imde Docker kullanarak tek hosta iki domain ile nasıl iki farklı Django projesini yayına alabilirim? Nginx ayarını docker-compose.yml dosyasında mı yapmalıyım, yoksa host sistemin üzerinde (etc/nginx/…) mi yapamlıyım ? Ya da nginx’i ayrı bir container içinde mi çalıştırmalıyım ?
İnternette araştırdığımda genelde docker ile django projesi yayına alanlar nginx ayarlarını docker-compase.yml dosyasında yazıyorlar ama iki farklı siteyi yayına almak için reverse proxy ayarının bu şekilde nasıl yapılacağını anlayamadım. Yerli, yabancı tam bir kaynak da bulamadım.
Nginx ayarları - Dockerfile, docker-compose.yml ayarları hakkında bilgi verirseniz çok sevinirim. Şimdiden teşekkürler.
PROJE AYARLARIM Bu ŞEKİLDE
Dockerfile
FROM python:3.8
RUN mkdir -p /opt/services/djangoapp/src
WORKDIR /opt/services/djangoapp/src
COPY Pipfile Pipfile.lock /opt/services/djangoapp/src/
RUN pip install pipenv && pip install --upgrade pip && pipenv install --system
RUN pip install django-ckeditor
RUN pip install Pipfile
COPY . /opt/services/djangoapp/src
EXPOSE 8000
CMD ["gunicorn", "--chdir", "hello", "--bind", ":8000", "hello.wsgi:application"]
docker-compose.yml
version: '3'
services:
djangoapp:
build: .
volumes:
- .:/opt/services/djangoapp/src
- static_volume:/opt/services/djangoapp/static
- media_volume:/opt/services/djangoapp/media
networks:
- nginx_network
- database1_network
depends_on:
- database1
nginx:
image: nginx
ports:
- 8000:80
volumes:
- ./config/nginx/conf.d:/etc/nginx/conf.d
- static_volume:/opt/services/djangoapp/static
- media_volume:/opt/services/djangoapp/media
depends_on:
- djangoapp
networks:
- nginx_network
database1:
image: postgres
env_file:
- config/db/database1_env
networks:
- database1_network
volumes:
- database1_volume:/var/lib/postgresql/data
networks:
nginx_network:
driver: bridge
database1_network:
driver: bridge
volumes:
database1_volume:
static_volume:
media_volume:
Nginx - local.conf
upstream hello_server {
server djangoapp:8000;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://hello_server;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8000;
}
location /static/ {
alias /opt/services/djangoapp/static/;
}
location /media/ {
alias /opt/services/djangoapp/media/;
}
}
İkinci projem için ayarlarda benzer şekilde.