주제
가상 서버 호스팅 서비스
프로젝트 개요
저희 프로젝트를 간략히 설명하자면 VPS를 제공하는 서비스입니다. VPS는 Virtual Private Server의 약자로 가상 사설 서버를 의미합니다. 가상화 기술을 사용하여 하나의 물리적 서버를 여러 개의 가상 서버로 나누어주는 것을 가상 사설 서버라고 합니다. 흔히 가상 사설 서버를 클라우드 서버라고 부르며 아마존, Microsoft가 VPS 산업에 뛰어들면서 시장의 규모와 기술 연구 수준이 폭발적으로 증가하고 있습니다. 저희는 사용자가 개인 서버를 손쉽게 만들고 관리할 수 있도록 도와주는 서비스를 개발했습니다.
프로젝트 목표
- Dockerfile만 업로드 하면 손쉽게 가상 서버를 구축할 수 있도록 함
- 직접 클라우드를 제공하는 서비스를 만들어 클라우드 컴퓨팅에 대해 학습
- 수업 시간에 배운 Docker 활용
사용된 기술
- React
- Node.js express
- Nginx
- MySQL
- Docker SDK
구현 기능
- 회원가입, 사용자 로그인/로그아웃, 사용자 인증
- Dockerfile 업로드, 관리, 삭제
- Docker Image Build, 관리, 삭제
- Docker Container Create, Start/Stop, 관리, 삭제
설치 방법
- Clone the repository.
git clone http://khuhub.khu.ac.kr/2020105655/vps_service
- Install npm packages frontend, backend.
cd frontend
npm install
cd ..
cd backend
npm install
cd ..
- Build frontend react app.
cd frontend
npm run build
- Create new file named
.env
at./backend
and enter info as below. -
.env.example
파일 참조
PORT=3000
MYSQL_USERNAME=root
MYSQL_PASSWORD=
MYSQL_DATABASE=
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
CORS_ALLOWED_URL={YOUR URL}
INITIAL_ADMIN_ID=
INITIAL_ADMIN_PW=
JWT_KEY=
- Edit nginx config file.
server {
server_name {YOUR URL};
root /{YOUR DIR}/vps_service/frontend/build;
location /api/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
}
location / {
try_files $uri $uri/ /index.html;
}
- Run the scripts.
bash cd backend npm start