Doccano: Вопрос: Как включить SSL для приложения doccano, живущего внутри контейнера докеров?

Созданный на 28 авг. 2019  ·  3Комментарии  ·  Источник: doccano/doccano

У меня глупый вопрос, и я сожалею об этом, но как мне включить SSL для приложения doccano, установленного внутри контейнера докеров?

Когда я запускаю приложение вот так:

docker run -d --rm --name doccano \
  -e "ADMIN_USERNAME=admin" \
  -e "[email protected]" \
  -e "ADMIN_PASSWORD=password" \
  -e "DEBUG=False" \
  -e "SECRET_KEY=secret-key" \
  -p 80:8000 doccano:myrebuilt

И я делаю sudo netstat -tpln получаю следующее:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp6       0      0 :::80                   :::*                    LISTEN      32697/docker:proxy

Если я наберу http://mydoccano:80/ в своем браузере, я увижу приложение Docanno. К сожалению, это небезопасно.

Итак, я подумал о настройке nginx на хост-машине и перенаправлении с 80 на 443, но я получаю эту ошибку при попытке запустить образ докера:

fc310303a5710e422580f1ffd5a0f1a30
docker: Error response from daemon: driver failed programming external connectivity on endpoint doccano (fa81ff4b030a29636bc22178e75b95a9d9988984325): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use.

Что я могу сделать для перенаправления с http:/mydoccano/ на https://mydocano/ ? Стоит ли устанавливать nginx внутри контейнера докеров? Или мне следует поместить сертификаты ssl в контейнер и запустить его, передав какие-то параметры ssl? Есть идеи или указатели? Заранее спасибо!

question

Самый полезный комментарий

Благодаря предложению @cw я наконец-то заставил свое приложение doccano работать с SSL.

Просто для записи и на случай, если кому-то интересно узнать, как я заставил это работать, вот моя конфигурация Nginx на рабочем сервере:

upstream doccano_app {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    listen [::]:80;
    server_name doccano.mydomain.com;

    location / {
        return 301 https://$host$request_uri;
    }
}

server { 
    listen 443 ssl;
    listing [::]443 ssl;

    server_name doccano.mydomain.com;

    ssl_certificate /etc/letsencrypt/live/doccano.mydomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/doccano.mydomain.com/privkey.pem;

    root /var/www/html;

    try_files $uri @docker;

    location <strong i="7">@docker</strong> {
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header Host $http_host;
          proxy_set_header X-Forwarded_Proto $scheme;
          proxy_redirect off;
          proxy_pass http://doccano_app;
  }

}

Все 3 Комментарий

Я бы рекомендовал использовать nginx для прерывания SSL, а затем перенаправить запрос в doccano. Обратите внимание: если вы используете doccano за SSL, вам придется настроить параметры, указанные в https://github.com/chakki-works/doccano/pull/350.

спасибо @cw

Благодаря предложению @cw я наконец-то заставил свое приложение doccano работать с SSL.

Просто для записи и на случай, если кому-то интересно узнать, как я заставил это работать, вот моя конфигурация Nginx на рабочем сервере:

upstream doccano_app {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    listen [::]:80;
    server_name doccano.mydomain.com;

    location / {
        return 301 https://$host$request_uri;
    }
}

server { 
    listen 443 ssl;
    listing [::]443 ssl;

    server_name doccano.mydomain.com;

    ssl_certificate /etc/letsencrypt/live/doccano.mydomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/doccano.mydomain.com/privkey.pem;

    root /var/www/html;

    try_files $uri @docker;

    location <strong i="7">@docker</strong> {
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header Host $http_host;
          proxy_set_header X-Forwarded_Proto $scheme;
          proxy_redirect off;
          proxy_pass http://doccano_app;
  }

}

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

atakanokan picture atakanokan  ·  4Комментарии

attenton picture attenton  ·  3Комментарии

rebby123 picture rebby123  ·  3Комментарии

JordanSimba picture JordanSimba  ·  4Комментарии

tulleuchen picture tulleuchen  ·  3Комментарии