Nginx + Vue.js + Spring Boot + Docker(CentOS 7) 배포하기 ①

Nginx + Vue.js + Spring Boot + Docker(CentOS 7) 배포하기 ①

제가 리눅스 서버를 따로 가지고 있지 않기 때문에 ① 장에서는 Docker를 사용하여 CentOS 7 환경 구축과 Nginx에 대한 설명을 하도록 하겠습니다.

Docker 명령어나 옵션에 대한 설명은 생략하고 진행하도록 하겠습니다.

개발 서버 정보

CentOS 7.8.2003

Nginx: 패키지 설치 & 1.20.2-1

1. Docker로 CentOS 7 컨테이너 실행하기

docker pull centos:7.8.2003

위 명령어로 Docker의 공식 레파지토리에 있는 centos 이미지를 가져옵니다.

다른 버전의 centos를 사용하고 싶으시면 docker search [Image Name]을 사용하여 공식 레파지토리에 있는지 확인하셔서 특정 버전의 이미지를 가져오시면 됩니다.

docker images

위 명령어를 사용하게 되면 현재 가지고 있는 이미지의 목록을 확인할 수 있습니다.

docker pull로 가져온 centos 이미지

Docker 이미지는 공식 레파지토리에 있는 것뿐만 아니라 개발자들이 직접 커스텀하여 이미지를 만들고 관리할 수도 있습니다! 이 부분은 추가적인 내용이기 때문에 여기서는 아~ 그런 게 있나 보구나~ 하고 지나가시면 될 거 같습니다.

container를 실행시켜보도록 하겠습니다.

docker run --privileged --restart always --name prod -p 80:80 -p 443:443 -v D:\Docker\prod:/mnt -dt centos:7.8.2003 /sbin/init

container가 정상적으로 실행이 됐는지 확인합니다.

docker ps

Docker run, ps

위와 같이 run 명령어 수행 이후 docker ps를 했을 때 리스트에 출력되면 container가 정상적으로 실행된 것입니다. 그럼 container로 접속해서 환경설정하겠습니다.

docker exec -it prod /bin/bash

Docker container 접속

위 명령을 치게 되면 위 사진과 같이 root 계정으로 container 안에 접속이 됩니다. 그럼 이제 세팅을 해보도록 하겠습니다.

2. 빈 깡통인 CentOS 7 설정하기

# yum 최신으로 업데이트 하기 yum -y update # sudo 명령어 설치하기 yum -y install sudo

서버의 환경 설정을 할 때 root 계정으로 하지 않기 때문에 sudo 권한을 가지는 임시 계정을 만들어 보도록 하겠습니다.

# wangtak 이란 이름을 가지는 유저 추가 adduser wangtak # wangtak의 비밀번호 설정 passwd wangtak # wangtak에게 sudo 권한 부여하기 chmod u+w /etc/sudoers vi /etc/sudoers

다음과 같은 구문을 추가해주시면 됩니다. 아래 사진처럼 root 밑에 추가해주시면 됩니다.

wangtak ALL=(ALL) ALL

sudoers 파일에 구문 추가

저장하고 나오면 root 계정의 할 일은 다 끝났습니다. container에서 빠져나와서 터미널로 이동해주세요. 그리고 저희가 만든 계정(wangtak)으로 container를 다시 접속하도록 하겠습니다.

docker exec -itu wangtak prod /bin/bash

Wangtak 계정 접속 _ sudo 권한

그럼 위와 같이 왼쪽에 접속한 계정이 나오고, sudo를 쳤을 때 사용법이 나오면 해당 계정의 sudo 권한까지 정상적으로 적용된 것입니다. 이제 Nginx를 설치해보도록 하겠습니다.

3. CentOS 7에서 Nginx 설치하기

yum 저장소에는 nginx repository가 없기 때문에 외부 저장소를 추가해줘야 합니다.

cd /etc/yum.repos.d sudo vi nginx.repo

sudo를 사용할 당시에 비밀번호를 입력하라고 나오면 root 계정으로 커스텀 계정(wangtak)을 만들 당시에 입력했던 비밀번호를 입력해주시면 됩니다. 그리고 nginx.repo에는 다음과 같이 입력해줍니다.

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/7/$basearch/

gpgcheck=0

enabled=1

위와 같이 nginx.repo를 만들어주면 nginx를 설치할 수 있습니다.

sudo yum -y install nginx

설치 시퀀스가 끝나고 다음과 같은 명령어를 입력했을 때 정상적으로 출력되면 정상적으로 설치가 완료된 것입니다.

# 설치 된 패키지 버전 확인 명령어 rpm -q nginx

nginx 설치 후 버전 확인

그럼 이제 설치된 nginx를 실행해보도록 하겠습니다.

# nginx의 상태 확인 sudo systemctl status nginx # nginx 실행 sudo systemctl start nginx # nginx 중지 sudo systemctl stop nginx

nginx를 실행했을 때 status 명령어를 쳐보면 다음과 같이 출력되면 정상적으로 서버가 실행 중인 것입니다.

nginx 정상 실행 상태

추가적으로 nginx와 관련된 정리를 해보면 다음과 같습니다.

curl localhost를 했을 때 nginx에서 초기 설정된 html이 정상적으로 출력되어야 합니다.

했을 때 nginx에서 초기 설정된 html이 정상적으로 출력되어야 합니다. nginx의 설정 파일은 /etc/nginx 경로에 있습니다.

경로에 있습니다. nginx의 pid, error.log, access.log 는 /etc/nginx 경로에 있는 nginx.conf에 명시되어 있습니다.

는 /etc/nginx 경로에 있는 nginx.conf에 명시되어 있습니다. nginx의 설정을 변경하려면 nginx.conf 혹은 conf.d 에 있는 *.conf 파일을 수정하면 됩니다.

혹은 에 있는 파일을 수정하면 됩니다. conf 파일을 수정한 이후에 변경된 내용이 문제가 있는지 없는지 확인을 하고 싶을 때는 sudo nginx -t 명령어를 사용하면 됩니다.

그럼 ② 장에서는 배포에 필요한 간략한 Vue.js 프로젝트와 Spring Boot 프로젝트를 만들어보도록 하겠습니다.

from http://wangtak.tistory.com/13 by ccl(A) rewrite - 2021-12-22 20:03:13