기술 팁 & 가이드 (Tech Tips & Guides)/Asustor &NAS

Asustor - 웹 서버가 필요한 웹페이지를 배포해보자.

BiCute 2022. 12. 19. 08:00
반응형

 

얼마전 작성한 Asustor - 나만의 웹사이트를 공개해보자 방식을 이용하면 일반 웹이나 빌드가 된 React, Vue는 배포할 수 있지만, 보여지기만 하는 페이지가 아닌 서버가 필요한 파일들은 실행을 할 수가 없습니다. 

 

이번 글은 그러한 프로젝트들을 웹사이트를 통해 배포하는 방법입니다.

 

 

 

STEP 1. SSH(Secure Shell)

  서비스 > Terminal로 이동하여 SSH 서비스를 활성화 해 줍니다.

  이제 SSH/SFTP를 통해 NAS에 로그인 할 수 있습니다.

 

 

 

STEP 2. SSH를 통해 NAS에 접속

  windows의 경우, 윈도우에서 SSH 클라이언트로 많이 사용되는 Putty나, 마이크로소프트 스토어에서 window terminal 등을 받아서 사용할수도 있지만, 이 글에선 MacOS을 기준으로 설명합니다.

  

 

2-1. 우선 터미널을 열고 OpenSSH가 설치되어 있는지 확인.

  아래와 같이 설치된 ssh 버전을 확인하는 명령어를 입력. (V는 대문자로 입력해야 함)

ssh -V

아래와 같은 문장이 나타나면 정상적으로 설치가 되어있는 상태입니다

OpenSSH_9.0p1, LibreSSL 3.3.6

 

 

2-2. OpenSSH를 이용해 서버에 접속하기.

  접속 명령어는 아래와 같습니다.

ssh [USER]@[HOSTNAME] -p [PORT]

 

  예 )

ssh bicute@app.myasustor.com -p 22

 

관리자 권한으로 실행해야하는데 맥의 경우 앞에 sudo를 붙여주면 관리자 권한으로 실행됩니다.

sudo ssh bicute@app.myasustor.com -p 22

 

 

정상적으로 실행이 되면 아래와 같은 메시지가 나오는데 YES > 패스워드를 입력해서 연결을 마무리 합니다

// YES나 enter를 눌러 다음으로 진행
The authenticity of host 'app.myasustor.com (119.201.233.235)' can't be established.
ECDSA key fingerprint is SHA256:t4wT4NXmd9maiySpsdsxbwT3bGgXJ+a0hK4NOXTUxH0.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

// 패스워드를 입력하면 접속 완료
Warning: Permanently added 'app.myasustor.com' (ECDSA) to the list of known hosts.
(bicute@app.myasustor.com) Password: [패스워드 입력]

// 연결이 완료되면 터미널의 위치가 NAS 폴더로 바뀝니다
bicute@BiCute:/volume1/home/bicute $

 

 

 

STEP 3. 웹 서버 시작

  이제 Web 폴더로 이동을 해야합니다.

  home 안에 있는 bicute(계정명) 폴더에서 시작하는데, 이건 사용자마다 조금씩 다를수 있으니 ls를 눌러 현재 폴더 위치를 확인하며 진행하면 됩니다.

 

명령어는 아래 3가지만 사용하면 됩니다.

ls는 현재 폴더의 파일과 폴더 목록을 볼 수 있고, 

cd ..는 상위 디렉토리로 이동.

cd [폴더명] 은 해당 폴더로 이동입니다.

 

 

대략적인 순서는 아래와 같습니다.

bicute@BiCute:/volume1/home/bicute $ ls  // 사용자 폴더에서 시작
MyPhoto/

bicute@BiCute:/volume1/home/bicute $ cd ..  // 한칸 상위 폴더로 이동

bicute@BiCute:/volume1/home $ cd ..  // 한칸 더 상위 폴더로 이동

bicute@BiCute:/volume1 $ ls  // 현재 위치의 폴더 확인
Admin/              Music/              Video/              home/
Docker/             Public/             Web/                lost+found/
Media/              

bicute@BiCute:/volume1 $ cd Web  // 웹 폴더로 이동 *대소문자 구분

bicute@BiCute:/volume1/Web $ ls  // 웹서버를 구동시킬 폴더는 web_test
dist/         index.html*   joomla3/      nodejs_basic/ web_test/
favicon.ico*  index.php*    locale/       phpmyadmin/   wordpress/

bicute@BiCute:/volume1/Web $ cd web_test  //  이동

bicute@BiCute:/volume1/Web/web_test $ ls
data/              main.js*           nodejs/            package.json*
lib/               node_modules/      package-lock.json*

bicute@BiCute:/volume1/Web/web_test $ node main.js  // 서버 기동

 

이제 서버가 기동되고 있으니 자신의 웹페이지 주소 + main.js 파일에서 작성한 포트 번호로 접속하면 웹서버를 확인할 수 있습니다.

예)
app.myasustor.com:3000

 

 

 

STEP 4. 사소한 문제들

  위 방식으로 웹서버를 구동하게되면 터미널을 종료하게되면 서버의 작동도 멈추게 됩니다.

  서버라는건 자고로 하루종일 돌아가야하는법!

 

 아래와 같이 실행 명령어 뒤에 &를 추가로 입력하여 백그라운드에서 계속해서 실행되도록 할 수 있습니다.

node main.js &  // 백그라운드에서 실행

exit  // 터미널 종료

 

 

이렇게 백그라운드에서 실행을 시키면... 이젠 끄고싶어도 끄는 방법이 보이질 않아 문제가 됩니다.

터미널에서 아래와 같이 입력합니다.

ps -ef

 

아래와 같이 뭔가 목록이 쭈~욱 나오는데 검색을 통해 실행중인 파일 이름을 검색해서 실행중인 process ID(앞쪽의 숫자)를 확인합니다.

 

processID를 찾았다면 kill processID를 입력해서 실행중인 작업을 종료 할 수 있습니다.

kill 12403

 

 

 

반응형