centos에 백엔드 springboot tomcat 서버 구축
node & pm2 설치
root 계정으로 nodejs 8.x 와 pm2를 글로벌로 설치한다.
1 2 3 4 5 6 7 8 9 10 11 12 |
# curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash - # yum install -y nodejs # npm install -g pm2 ## jar를 저장할 디렉토리 생성 # mkdir /var/eastflag # chown centos:centos /var/eastflag ## 로그를 저장할 디렉토리 생성 # mkdir /var/log/eastflag # chown centos:centos /var/log/eastflag |
컴파일
centos 계정으로 진행한다.
# 은 보통 root에서 사용하는 콘쉘의 프람프트이고 $는 사용자계정의 쉘 프람프트이다.
#이면 root 계정으로, $면 사용자 계정이라고 생각해야한다.
gradle wrapper로 컴파일 후 /var/eastflag/eastflag.jar 로 복사한다. 미리 root 계정에서 해당 폴더는 만들어 놓았어야 한다.
만일 git이 없으면 root 계정으로 설치를 해야 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
git 설치 # yum install -y git centos 계정으로 전환 # su - centos $ mkdir git $ cd git 백엔드 git주소를 clone한다. $ git clone https://github.com/eastflag/backend.git clone 후 생성된 디렉토리로 이동 $ cd 생성된폴더 소스에서 gradle wrapper를 커밋했다면 먼저 gradlew 실행권한을 설정 $ chmod 755 ./gradlew 백그라운드로 컴파일한다. $ ./gradlew build --no-daemon 빌드가 완료되면 jar 가 생성되는데 좀전에 만든 폴더로 이동시킨다. $ cp ./build/libs/eastflag-0.0.1-SNAPSHOT.jar /var/eastflag/eastflag.jar |
pm2 실행
log를 효율적으로 관리하는 logrotate를 먼저 설치한다.
1 |
$ pm2 install pm2-logrotate |
홈 디렉토리에서 process.json을 만든다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
$ vi process.json { "apps": [ { "name": "pm2-java-spring-boot", "cwd": ".", "script": "java", "args": [ "-jar", "/var/eastflag/eastflag.jar" ], "watch": [ "/var/eastflag/eastflag.jar" ], "env": { "PORT": "8080", "SOME_VAR": "^.^", "SPRING_PROFILES_ACTIVE": "prod" }, "node_args": [], "log_date_format": "YYYY-MM-DD HH:mm Z", "exec_interpreter": "", "exec_mode": "fork" } ] } |
실행한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ pm2 start process $ pm2 ls ┌──────────────────────┬────┬──────┬──────┬────────┬─────────┬────────┬─────┬────────────┬────────┬──────────┐ │ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │ ├──────────────────────┼────┼──────┼──────┼────────┼─────────┼────────┼─────┼────────────┼────────┼──────────┤ │ pm2-java-spring-boot │ 1 │ fork │ 7681 │ online │ 3 │ 17D │ 0% │ 321.8 MB │ centos │ disabled │ └──────────────────────┴────┴──────┴──────┴────────┴─────────┴────────┴─────┴────────────┴────────┴──────────┘ Module activated ┌───────────────┬─────────┬────────────┬────────┬─────────┬─────┬─────────────┬────────┐ │ Module │ version │ target PID │ status │ restart │ cpu │ memory │ user │ ├───────────────┼─────────┼────────────┼────────┼─────────┼─────┼─────────────┼────────┤ │ pm2-logrotate │ 2.4.0 │ N/A │ online │ 0 │ 0% │ 33.328 MB │ centos │ └───────────────┴─────────┴────────────┴────────┴─────────┴─────┴─────────────┴────────┘ Use `pm2 show <id|name>` to get more details about app |