我正在将个人网站迁移到docker-chain,并构建了docker-compose以集成Django,Postgres,Gunicorn和Nginx。我还在Digital Ocean Droplet上运行了一个Nginx实例,以允许服务器上使用SSL。
我的问题是我已在DO Droplet的Nginx实例上添加了SSL,而我的Django站点却无法上网。我相信这是一个简单的问题,但我不了解主机Nginx在哪里可以找到应用程序的Nginx容器。
以下是Nginx docker-compose部分
# Nginx Configurations
nginx:
build:
context: ./nginx
dockerfile: Dockerfile_Nginx
volumes:
- static_volume:/usr/src/personal_website/static
ports:
- 2019:80
- 443:443
depends_on:
- django
当容器在我的本地计算机上运行时,我可以将Web应用程序显示到http://localhost:2019,这是我想要的。但是,我希望Droplet上的Nginx实例显示它。
以下是网站的配置文件:
upstream personal_website {
server django:2019
}
server {
server_name example.com www.example.com;
listen 80;
location / {
proxy_pass http://personal_website;
}
}
我相信这就是我所需要的,对吗?
当我在服务器上运行容器时会发生什么事情,就是我在端口80上具有基本的Nginx页面,该页面通过Certbot转发到443。我想要显示的是在端口2019上公开的Web应用程序。有没有办法做到这一点?还是我需要直接在服务器上运行Django应用程序?