이번 포스팅에서는 홈 서버를 만들기 위한 단계중에서
을 진행 해 본다.
$ sudo apt upgrade
위와 같이 업데이트/업그레이드를 해준 후,
$ sudo apt-get install nginx
nginx를 설치한다.
그리고 nginx를 테스트하기 전에 방화벽 소프트웨어를 조정하여 서비스에 액세스 할 수 있도록 해야한다고 한다.
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
ufw app list를 치면 아래의 output과 같이 나오는데,
Nginx Full :이 프로필은 포트 80 (암호화되지 않은 일반 웹 트래픽)과 포트 443 (TLS / SSL 암호화 트래픽) 모두를 연다.
Nginx HTTP :이 프로필은 포트 80 (일반, 암호화되지 않은 웹 트래픽)을 연다
Nginx HTTPS :이 프로필은 포트 443 (TLS / SSL 암호화 트래픽)을 연다.
라고 한다.
일단 HTTP를 열어준다.
$ sudo ufw allow 'Nginx HTTP'
vue를 직접 설치하거나 dist파일을 꽂아주기 전에 config 설정 파일을 수정 해 줘야 한다.
$ sudo vi /etc/nginx/sites-available/default
위 명령어로 conf 파일에 접근한 다음
server {
listen 3000 default_server;
listen [::]:3000 default_server;
root /var/www/html/vue-front/dist;
index index.html;
server_name _;
location / {
try_files $uri $uri/ /index.html;
}
}
3000포트로 접속될 수 있게 수정 해 준다.. 원래 기본이 80포트로 되어있는데 각자가 원하는 포트로 설정 해 주면 된다..
그리고 root는 vue dist 디렉토리를 지정하면 된다. 이 또한 기본으로 /var/www/html 디렉토리 안에 vue를 설치하거나 dist를 직접 꽂아주면 된다.
index는 index.html로 설정하였다.
location / { ... }의 try_files $uri $uri/ /index.html; 는
링크를 참고하여 설정해주었다.
esc키 -> :wq 를 입력하여 저장, 닫기 한다.
설정 해 준 위치에 dist 파일을 꽂고 포트에 접속하면 vue화면을 볼 수 있다.
다음은 API를 올려보자.
원래 도커 ~ 젠킨스로 CI/CI환경을 구축하려 했으나 SSH 문제로 잘 되지 않아서 putty를 이용해 직접 빌드된 api를 올려줬다.
putty 사용방법 역시 구글링을..
중요한건 api를 24시간 돌릴 수 있도록 해 주는 스크립트이다.
api를 돌릴 디렉토리에 빌드.jar war 파일을 올려준 후 원하는 곳에 다음과 같은 스크립트를 작성 해 준다.
CURRENT_PID=$(ps -ef | grep java | awk '{print $2}')
if [ -z $CURRENT_PID ]; then
echo "> 현재 구동중인 어플리케이션이 없습니다."
else
echo '>실행중인 어플리케이션 종료'
echo "> kill -9 $CURRENT_PID"
kill -9 $CURRENT_PID
echo '>실행중인 어플리케이션 종료 완료'
fi
echo ">어플리케이션 배포"
rm -rf /home/anna/api/server.log
nohup java -jar -Dspring.profiles.active=product /home/anna/api/api-0.0.1-SNAPSHOT.jar >> /home/anna/api/server.log &
echo ">어플리케이션 배포 완료"
echo 부분은 로그 확인을 위해 작성 한 것이므로 삭제해도 무방하다.
현재 구동중인 어플리케이션이 있다면 종료하고 다시 실행하고, nohup을 통해 정해준 위치에 있는 jar파일을 24시간 가동한다. 스프링 프로필은 운영서버로 둘 것이기 때문에 product로 설정하였다.
는 구글링을 하면 쏟아져 나오기 때문에 따로 작성하지 않겠다.
이상으로 홈서버를 구축 해 보았다.
글은 짧지만 모두 이해하고 구현하는데 까지는 정말 오랜 시간이 걸렸다..ㅠㅠ
이제 여러분은 비싼 클라우드 서비스를 사용하는 대신 월 n만원 정도의 전기세만으로 서버를 돌릴 수 있다!
쿠버네틱스나 도커 등으로 서버를 쪼개 여러서버를 사용하는 방법도 있던데 차차 알아봐야겠다.