์ด๋ฆฌ์์ ์ง๋ฌธ์ด ์์ต๋๋ค. ์ฃ์กํฉ๋๋ค. ํ์ง๋ง ๋์ปค ์ปจํ ์ด๋ ๋ด๋ถ์ ์ค์ ๋ doccano ์ฑ์ SSL๋ก ํ์ฑํํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
๋ค์๊ณผ ๊ฐ์ด ์ฑ์ ์คํํ ๋:
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 ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ๋ฉด์ ์คํํด์ผ ํฉ๋๊น? ์ด๋ค ์์ด๋์ด๋ ํฌ์ธํฐ๊ฐ ์์ต๋๊น? ๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
nginx๋ฅผ ์ฌ์ฉํ์ฌ SSL์ ์ข ๋ฃํ ๋ค์ ์์ฒญ์ doccano๋ก ์ ๋ฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค. SSL ๋ค์์ doccano๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ 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;
}
}
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@cw ์ ์ ๋๋ถ์ ๋ง์นจ๋ด ๋ด doccano ์ฑ์ด SSL๊ณผ ์๋ํ๋๋ก ๋ง๋ค์์ต๋๋ค.
๊ธฐ๋ก์ ์ํด ๊ทธ๋ฆฌ๊ณ ๋๊ตฐ๊ฐ ๋ด๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์๊ณ ์ถ์ดํ๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ํ๋ก๋์ ์๋ฒ์ Nginx ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.