본문 바로가기
IT일반/Strapi

오라클 클라우드에 strapi 배포

by xavi2019 2022. 3. 20.

 

nodejs 버전 업그레이드 

오라클 클라우드 instance : ubuntu 20.04

그냥 설치하면 10이 설치됨

 

strapi 가 node 12-14를 지원하므로 

node를 14로 업그레이드

sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

 

strapi 설치

npx create-strapi-app@latest tera-strapi

 

strapi server.js & .env 설정

PUBLIC_URL을 아래와 같이 설정해주고, 서버에 배포후, .env파일을 만들어 PUBLIC_URL을 서버 주소로 수정해주면 됨

module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  app: {
    keys: env.array('APP_KEYS'),
  },
  url: env('PUBLIC_URL', 'http://localhost:1337')
});

(중요) 서버에서는 반드시 yarn build 를 한번 해줘야 함. 로컬에서는 할 필요 없음.

pm2 및 nginx 설치 및 설정

strapi를 쌩으로 실행하지 말고 pm2에 올려서 nginx를 프록시서버를 이용하여 실행하는 것이 좋다.

pm2 설정

pm2 설치후 server.js 파일 생성

pm2 start server.js 로 백그라운드 실행

https://docs.strapi.io/developer-docs/latest/guides/process-manager.html#install-pm2

 

nginx 설정 

/etc/nginx/sites-available/컨피그파일 

server {
        listen 80;
        listen [::]:80;
        
        server_name {도메인};

        root /var/www/html;
        index index.html;

        location / {
        		proxy_set_header X-Forwarded-Proto https;
                proxy_pass http://127.0.0.1:1337;
        }
        
        client_max_body_size 10M;
        
        location ~ /\.ht {
                deny all;
        }
}

도메인 활성화를 위해 심볼릭 링크 생성

sudo ln -s /etc/nginx/sites-available/{도메인} /etc/nginx/sites-enabled

 

 

 

production 모드로 실행

pm2 init
vi ecosystem.config.js
module.exports = {
  apps : [{
        script: 'npm',
        args: 'start',
        name: 'tera-strapi-by-pm2',
  }],
  deploy : {
    production : {
      user : 'SSH_USERNAME',
      host : 'SSH_HOSTMACHINE',
      ref  : 'origin/master',
      repo : 'GIT_REPOSITORY',
      path : 'DESTINATION_PATH',
      'pre-deploy-local': '',
      'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env production',
      'pre-setup': ''
    }
  }
};
pm2 start ecosystem.config.js

 

댓글