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
|
로컬에서는 다음과 같이 접속하면 됨
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
| 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
export GOROOT=/usr/local/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
|