Ubuntu 20.04 LTS (GNU/Linux 5.4.0-1018-aws x86_64)
ํ๊ฒฝ์ ๋ฐ๋ผ vi, nano / ssh, bash ๊ฐ์ ๋ช
๋ น์ด๊ฐ ๋ฌ๋ผ์ง ์ ์์ผ๋ ์ฃผ์
์ฒ์๋ถํฐ ๋๊น์ง ์ฌ์ง ์๊ณ ์งํํ๋ ๊ฒ์ด๋ฏ๋ก, ํ์ฌ ๊ฒฝ๋ก(์์น)์ ์ ์
Docker, docker-compose ์ค์น
# ์ฌ์ฉ์ root๋ก ๋ณ๊ฒฝ
sudo su
apt-get update
apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
-fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o
/usr/share/keyrings/docker-archive-keyring.gpg
echo \
" deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]
https://download.docker.com/linux/ubuntu \
$( lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get install docker-ce docker-ce-cli containerd.io
curl -L " https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$( uname -s) -$( uname -m) " -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
OpenVidu ํ์ผ ๋ค์ด๋ก๋
cd /opt # ์ดํ ์์
ํ๋ ํ์ผ๋ค๋ opt์์ ์์
ํฉ๋๋ค.
curl https://s3-eu-west-1.amazonaws.com/aws.openvidu.io/install_openvidu_latest.sh | sudo bash
ํ๊ฒฝ ์ค์ ํ์ผ ์์ (.env)
cd /opt/openvidu
vi .env
# ์๋ํฐ์์ ์๋์ ๊ฐ์ ์ฐพ์์ ๋ณ๊ฒฝ
DOMAIN_OR_PUBLIC_IP=< ์๋ฒ ์ฃผ์ ๋๋ ๋๋ฉ์ธ>
OPENVIDU_SECRET=< ์๋ฒ ๋น๋ฐ๋ฒํธ>
CERTIFICATE_TYPE=letsencrypt # letsencrypt๋ฅผ ์ฌ์ฉํ์ฌ SSL ์ธ์ฆ์ ๋ฐ๊ธ
LETSENCRYPT_EMAIL=< ์ด๋ฉ์ผ> # letsencrypt์์ ์ฌ์ฉํ ์ด๋ฉ์ผ
HTTP_PORT=< ํฌํธ ๋ฒํธ>
HTTPS_PORT=< ํฌํธ ๋ฒํธ>
# ํฌํธ ๋ฒํธ ์ดํ์ ์์ ์์
OpenVidu ์๋ฒ ์คํ
์๋ฒ ์คํ ์ฌ๋ถ ํ์ธ
ํฌํธ ๋ณ๊ฒฝ์ ์ํ ์๋ฒ ์ข
๋ฃ
ํ๊ฒฝ ์ค์ ํ์ผ ํฌํธ๋ฒํธ ์์
HTTP_PORT=< ๋ณ๊ฒฝ ํฌํธ ๋ฒํธ>
HTTPS_PORT=< ๋ณ๊ฒฝ ํฌํธ ๋ฒํธ>
OpenVidu ์๋ฒ ์ฌ์์
Docker๋ฅผ ํ์ฉํ์ฌ mariaDB 10.2 ์ค์น
docker run --name mariadb -d -p < DB ํฌํธ ๋ฒํธ> :< DB ํฌํธ ๋ฒํธ> -e MYSQL_ROOT_PASSWORD=< root ๋น๋ฐ๋ฒํธ> mariadb:10.2
MySQL Workbench ๋ฑ์ ์ฌ์ฉํ์ฌ root๋ก ์ ์ ํ ์๋ ํ์ผ์ sql๋ฌธ ์คํ
ํ๋ก์ ํธ ์ปจํ
์ด๋ ์ ์ฌ
๋ฏธ๋ฆฌ ๋น๋ํด๋ ํ์ผ์ ์ด์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
git ์ค์น ํ ์ ์ฅ์ clone
apt-get update
apt-get install git
cd /opt
git clone https://lab.ssafy.com/s06-webmobile1-sub2/S06P12A106.git # ์ดํ์ ๋์ค๋ git ์ฌ์ฉ์ ์์ด๋ ๋น๋ฐ๋ฒํธ ์
๋ ฅ
docker-compose ํ์ฉํ์ฌ ํ๋ก์ ํธ ์ฑ ์ปจํ
์ด๋ ์ ์ฌ
cd /opt/S06P12A106/backend/docker
docker-compose up --build -d springboot
SSL ์ธ์ฆ์ ๋ฐ๊ธ ๋ฐ ํ๋ก์ ํธ ๋ฐฐํฌ
์ธ์ฆ์ ๋ฐ๊ธ์ ์ํ ์ฝ๋ ์์ฑ ๋ฐ ์์
cd /opt/S06P12A106/backend/docker
vi /opt/nginx/conf.d/nginx.conf
# ์๋์ ์ฝ๋ ์
๋ ฅ
server {
listen < ํฌํธ ๋ฒํธ> ;
listen [::]:< ํฌํธ ๋ฒํธ> ;
server_name < ๋๋ฉ์ธ ip ๋๋ ์ด๋ฆ> # <>๊ดํธ ์ง์ฐ๊ณ ์
๋ ฅํ ๊ฒ
location /.well-known/acme-challenge/ {
allow all;
root /var/www/certbot;
}
}
vi /opt/S06P12A106/backend/docker/init-letsencrypt.sh
# ์๋์ ๋ด์ฉ ๋ณ๊ฒฝ
domains=" <๋๋ฉ์ธ ip ๋๋ ์ด๋ฆ>" # <>๊ดํธ๋ ์ง์ฐ๊ณ ""๋ ๊ธธ ๊ฒ
email=" <์ด๋ฉ์ผ>" # <>๊ดํธ๋ ์ง์ฐ๊ณ ""๋ ๊ธธ ๊ฒ
์์์ ์์ ํ init-letsencrypt.sh ํ์ผ ์คํ
./init-letsencrypt.sh
# IMPORTANT NOTES: - Congratulations! ๊ฐ ๋ ์ผ ์ ์์ ์ผ๋ก ์ธ์ฆ์๊ฐ ๋ฐ๊ธ๋ ๊ฒ
NGINX ์๋ฒ ์ค์ ์ถ๊ฐ
vi /opt/nginx/conf.d/app.conf
# ์๋์ ๋ด์ฉ ๋ณต์ฌ ๋ฐ <> ๋ด์ฉ ๋ณ๊ฒฝ, <>๊ดํธ๋ ์ง์ธ ๊ฒ
server {
listen < ํฌํธ ๋ฒํธ> ;
listen [::]:< ํฌํธ ๋ฒํธ> ;
server_name < ๋๋ฉ์ธ ip ๋๋ ์ด๋ฆ> ;
location /.well-known/acme-challenge/ {
allow all;
root /var/www/certbot;
}
location / {
return 301 < ๋๋ฉ์ธ ip ๋๋ ์ด๋ฆ> $request_uri ;
}
}
server {
listen < ํฌํธ ๋ฒํธ> ssl;
server_name < ๋๋ฉ์ธ ip ๋๋ ์ด๋ฆ> ;
ssl_certificate /etc/letsencrypt/live/< ๋๋ฉ์ธ ip ๋๋ ์ด๋ฆ> /fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/< ๋๋ฉ์ธ ip ๋๋ ์ด๋ฆ> /privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
proxy_pass http://springboot:< ํฌํธ ๋ฒํธ> ;
proxy_set_header Host $http_host ;
proxy_set_header X-Real-IP $remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
}
}
docker-compose up --build -d nginx # NGINX ์ฌ์์