[개발] Ubuntu 20.04 Desktop 서버에 백엔드 서비스를 올리는 과정

Spec

VM 1 : Flask + uwsgi + nginx + sqlite
VM 2 : Golang Gin + postgres(docker)

Common - 00. ssh 설치

로컬에서 접속해서 설정하기 위해 ssh 설치 필요

1
2
$ sudo apt-get install openssh-server
$ sudo systemctl status ssh

방화벽을 설정해서 ssh 접속 포트(22번)를 허용해야 함

1
2
$ sudo ufw allow 22/tcp
$ sudo ufw enable

로컬에서는 다음과 같이 접속하면 됨

1
2
# Mac OS X Terminal
$ ssh user@IP_ADDRESS

Common - 00. git 설치

git이 없다면 설치해야 함(백엔드 어플리케이션 소스코드 배포를 위함)

1
$ sudo apt-get install git

Flask - 00.

Flask - 01. 소스코드 clone / requirements.txt

주로 /srv 디렉토리에 저장

1
2
3
user@user /srv$ sudo git clone https://github.com/TaeBbong/Flask-Board.git
python3 -m venv venv
source venv/bin/activate
1
2
pip install -r requirements.txt
flask run

Flask - 02. uwsgi

1
2
3
4
5
# wsgi.py
from app import app as application

if __name__ == "__main__":
application.run()
1
2
3
4
5
6
7
8
9
10
11
[uwsgi]

module = wsgi

socket = /tmp/uwsgi.sock
chmod-socket = 666
vacuum = true

daemonize = /srv/uwsgi.log

die-on-term = true
1
2
3
pip install uwsgi
uwsgi --ini uwsgi.ini
ls -l /tmp | grep uwsgi.sock

Flask - 03. nginx

1
sudo apt-get install nginx
1
2
3
4
5
6
7
8
9
10
/etc/nginx/sites-available/my_nginx
server {
listen 5000;
server_name localhost;

location / {
include uwsgi_params;
uwsgi_pass unix:/tmp/uwsgi.sock;
}
}
1
2
3
sudo ln -s /etc/nginx/sites-available/my_nginx /etc/nginx/sites-enabled
sudo nginx -t
sudo service nginx restart

Flask - 04. Firewall

1
2
3
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 5000/tcp

Go - 01. install

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ wget https://golang.org/dl/go1.16.5.linux-amd64.tar.gz
$ tar -C /usr/local -xvf go1.16.5.linux-amd64.tar.gz

$ sudo vi ~/.profile

# GOROOT: 설치된 Go 패키지의 경로
export GOROOT=/usr/local/go

# GOPATH: Go 패키지를 이용해 작업할 공간
export GOPATH =/usr/local/workplace/go

# 동일
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

$ source ~/.profile

Go - 02. Source Code

1
2
3
4
5
$ cd /srv
$ git clone https://github.com/TaeBbong/Go-Board.git
$ cd Go-Board
$ go mod tidy
$ go run main.go

Go - 03. Firewall

1
2
3
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 8080/tcp

[개발] Ubuntu 20.04 Desktop 서버에 백엔드 서비스를 올리는 과정

https://taebbong.github.io/2022/03/10/2022-03-10-backend/

Author

TaeBbong Kwon

Posted on

2022-03-10

Updated on

2022-08-06

Licensed under

Comments