我设法对django应用进行了docker化。使用docker-compose我可以运行django,postgresql和nginx,但是Nginx不能很好地工作。我可以访问我的应用程序,并且可以正常运行,但是当我尝试连接到我的域时,始终可以在端口8000上运行。我想在testapp.org上运行我的应用程序,但我只能通过testapp.org访问。我该如何解决?我需要在配置文件中使用哪些更改?我错过了什么吗?
docker-compose:
version: '3'
services:
db:
container_name: db.postgres
image: postgres:10
environment:
- POSTGRES_DB=testdb
- POSTGRES_USER=test
- POSTGRES_PASSWORD=password
ports:
- '5432:5432'
volumes:
- ./pgdata:/var/lib/postgresql/data
web:
restart: always
build: .
image: djangoapp
command: bash -c "python manage.py makemigrations && python manage.py migrate && gunicorn fatihkocnet.wsgi -b 0.0.0.0:8000"
depends_on:
- db
volumes:
- ./fatihkocnet:/fatihkocnet
- ./config/nginx:/etc/nginx/conf.d
expose:
- "8000"
nginx:
restart: always
image: nginx:latest
ports:
- "8000:8000"
volumes:
- ./fatihkocnet:/fatihkocnet
- ./config/nginx:/etc/nginx/conf.d
depends_on:
- web
nginx / test.conf
upstream web {
ip_hash;
server web:8000;
}
# portal
server {
location / {
proxy_pass http://web;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
listen 8000;
server_name testapp.org;
}
答案 0 :(得分:0)
您需要将Docker Hosts端口(如果要在HTTP端口上托管服务,则映射为80)到您的ngnix docker服务。
例如
端口:
-“ 80:8000”
您需要将HOST服务器IP映射到DNS到您的testapp.org地址。