Docker Container在本地运行良好,SSL Nginx实例无法找到应用

时间:2019-04-18 04:39:10

标签: python django ssl nginx docker-compose

我正在将个人网站迁移到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应用程序?

0 个答案:

没有答案