如何修复:域名在数字海洋中不起作用';水滴。使用Nginx、docker compose、django
我正试图为我的数字海洋的水滴建立一个域名。虽然IP地址工作得很好,但域名似乎没有做任何事情,并得到“无法访问此站点” 检查表明DNS名称服务器指向正确的方向,即数字海洋的名称服务器[NS1.DIGITALOCEAN.COM、NS2.DIGITALOCEAN.COM、NS3.DIGITALOCEAN.COM],并使用www.whatsmydns.net显示域名已传播 Digital Ocean的DNS记录如下:如何修复:域名在数字海洋中不起作用';水滴。使用Nginx、docker compose、django,django,nginx,docker-compose,digital-ocean,domain-name,Django,Nginx,Docker Compose,Digital Ocean,Domain Name,我正试图为我的数字海洋的水滴建立一个域名。虽然IP地址工作得很好,但域名似乎没有做任何事情,并得到“无法访问此站点” 检查表明DNS名称服务器指向正确的方向,即数字海洋的名称服务器[NS1.DIGITALOCEAN.COM、NS2.DIGITALOCEAN.COM、NS3.DIGITALOCEAN.COM],并使用www.whatsmydns.net显示域名已传播 Digital Ocean的DNS记录如下: upstream jaciv_server { server djangoa
upstream jaciv_server {
server djangoapp:8000;
}
server {
listen 80;
server_name domain.tk www.domain.tk;
location / {
proxy_pass http://jaciv_server;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /static/ {
alias /opt/services/djangoapp/static/;
}
location /media/ {
alias /opt/services/djangoapp/media/;
}
}
一个--domain.tk--指向X.X.X.XCNAME--www.domain.tk是domain.tk的别名
NS--domain.tk--指向ns1.digtalocean.com
NS--domain.tk--指向ns2.digtalocean.com
NS--domain.tk--指向ns3.digtalocean.com
我正在使用freenom使用一个.tk域,并且在那里配置了相同的域名服务器 我的NGINX配置如下:
upstream jaciv_server {
server djangoapp:8000;
}
server {
listen 80;
server_name domain.tk www.domain.tk;
location / {
proxy_pass http://jaciv_server;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /static/ {
alias /opt/services/djangoapp/static/;
}
location /media/ {
alias /opt/services/djangoapp/media/;
}
}
我的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
domainname: jaciv.tk
networks:
- nginx_network
- database1_network
depends_on:
- database1
nginx:
image: nginx:1.13
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
- redis
networks:
- nginx_network
database1:
image: postgres:10
networks:
- database1_network
volumes:
- database1_volume:/var/lib/postgresql/data
redis:
image: "redis:alpine"
networks:
- database1_network
- nginx_network
celery:
build: .
command: celery -A jaciv_app worker -l info
volumes:
- .:/opt/services/djangoapp/src
depends_on:
- database1
- redis
- djangoapp
networks:
- database1_network
celery-beat:
build: .
command: celery -A jaciv_app beat -l info
volumes:
- .:/opt/services/djangoapp/src
depends_on:
- database1
- redis
- djangoapp
networks:
- database1_network
- nginx_network
networks:
nginx_network:
driver: bridge
database1_network:
driver: bridge
volumes:
database1_volume:
static_volume:
media_volume:
我允许的主机是django设置
ALLOWED_HOSTS = ['domain.tk', 'X.X.X.X']
docker-compose.yml文件中nginx容器的端口已关闭。
你应使用:
nginx:
image: nginx:1.13
ports:
- 80:80
您希望docker代理侦听端口80(“80:80”中的第一个“80”),并希望将该流量转发到nginx容器中的端口80(“80:80”中的第二个“80”),因为这是nginx将侦听的默认端口。实际运行Django服务器的命令在哪里?
CMD[“gunicorn”、“--chdir”、“jaciv_app”、“--bind”,“:8000”,“jaciv_app.wsgi:application”]
事实证明,我只需要等待48小时。尽管如此,您的评论帮助我解决了一个移植问题。由于nginx正在侦听端口8000,因此在搜索URL时必须指定它。我改变了这个,现在一切都很完美。