【问题标题】:How to letsencrypt flask application running on docker and gunicorn as a webserver..?如何让在 docker 和 gunicorn 上作为网络服务器运行的加密烧瓶应用程序..?
【发布时间】:2018-08-18 18:16:27
【问题描述】:

我正在尝试为我的网站获取 SSL,我已经尝试使用我遵循的许多教程来做到这一点,是的,我可以做到,但其中许多教程主要使用 nginx 作为网络服务器。
但是..现在我想为我的站点获取 SSL,该站点在 docker 和 gunicorn 作为网络服务器上运行。
我遵循了许多教程和源代码,但我做不到。 等等.. 怎么做.?,
任何源示例或教程将不胜感激...?
这是我的 Dockerfile

FROM python:3.6.5-stretch

MAINTAINER Irwan Santosa

RUN apt-get update && apt-get install -y build-essential libpq-dev

ENV INSTALL_PATH_DOCKER /web_app_docker

RUN mkdir -p $INSTALL_PATH_DOCKER

WORKDIR $INSTALL_PATH_DOCKER

COPY requirements.txt requirements_docker.txt

RUN pip install -r requirements_docker.txt

COPY . .

CMD gunicorn -b 0.0.0.0:80 --access-logfile - "web_app.app:create_app()"

这是我的 docker-compose.yml

version: '3'

services:
  web_app_docker:
    build: .
    command: >
      gunicorn -b 0.0.0.0:80
      --access-logfile -
      --reload
      "web_app.app:create_app()"

    volumes:
      - '.:/web_app_docker'

    ports:
      - '9999:80'

  service_postgresql_docker:
    image: 'postgres:9.6'

    environment:
      POSTGRES_USER: 'irwan'
      POSTGRES_PASSWORD: '12345'

    volumes:
      - '/var/lib/postgresql/data'

    ports:
      - '5435:5432'

【问题讨论】:

    标签: docker nginx lets-encrypt


    【解决方案1】:

    [已解决] 我是用 nginx 反向代理来做的。
    这是我的 default 文件配置,位于 /etc/nginx/sites-available/default

    server
    {
      listen 80;
      listen [::]:80;
    
      server_name irwan.trinanda.tk;
      return 301 https://$server_name$request_uri;
    }
    
    server
    {
      listen 443 ssl;
      listen [::]:443 ssl;
      server_name irwan.trinanda.tk;
    
      ssl on;
      ssl_certificate /etc/letsencrypt/live/irwan.trinanda.tk/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/irwan.trinanda.tk/privkey.pem;
      ssl_dhparam /etc/letsencrypt/live/irwan.trinanda.tk/dhparams.pem;
    
      access_log /var/log/nginx/access.log;
      error_log /var/log/nginx/error.log;
    
      location /.well-known
      {
        root /var/www/ssl/website1/;
      }
    
      location /
      {
        include proxy.conf;
        proxy_pass http://128.199.80.54:9999/;
      }
    }
    

    我已按照本教程进行操作,是的.. 我明白了:
    https://www.guyatic.net/2017/05/09/configuring-ssl-letsencrypt-certbot-nginx-reverse-proxy-nat/
    非常感谢谁写的。

    【讨论】:

    • 无赖。我希望您在不使用 nginx 的情况下解决了问题。这是否意味着无需设置 nginx 就无法在 docker/gunicon 上启用 ssl?该链接现在也无法使用,所以双重无赖
    猜你喜欢
    • 2018-07-06
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 2016-12-09
    • 2014-06-26
    • 1970-01-01
    • 2019-07-27
    相关资源
    最近更新 更多