Ubuntu 16.04에서 Nginx 리버스 프록시를 사용하여 Keystone.js 서버 설정

이 학습서에서는 리버스 프록시가있는 웹 서버를 설정합니다. 우리가 사용할 CMS는 Express.js를 기반으로하는 잘 알려진 웹 애플리케이션 프레임 워크 인 Keystone.js입니다. 우리가 사용할 리버스 프록시는 무료 및 오픈 소스 리버스 프록시 인 Nginx이며 HTTP 서버입니다. 우리가 사용할 데이터베이스는 NoSQL 문서 데이터베이스 인 MongoDB입니다. 이를 위해서는 레코드가 설정된 도메인이 있어야합니다. 해당 세트가없는 경우 계속 진행하여 처리하고이 튜토리얼로 돌아 오십시오.

노드 설치

먼저 Chrome V8 Javascript 엔진을 기반으로하는 Javascript 인터프리터 인 Node.js를 설치합니다.

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

Nginx 설치

다음으로 리버스 프록시 Nginx를 설치합니다.

sudo apt update
sudo apt install nginx

패키지 목록이 업데이트되고 Nginx가 설치됩니다. 설치가 완료되면 노드 프로젝트를 설정합니다.

Keystone 프로젝트 초기화

노드 프로젝트를 만듭니다. 그렇게하려면 단순히 새 폴더를 만드십시오.

mkdir website

그런 다음 package.json파일 을 만듭니다 . 그렇게하려면 npm init터미널에서 간단히 필드를 채우고 " yes"라고 답장 하여 확인하십시오. package.json파일 을 작성 하면 다음 노드 모듈이 설치됩니다.

sudo npm install -g generator-keystone
sudo npm install -g yo

다운로드가 완료되면 다음을 실행하십시오.

yo keystone

필수 입력란을 작성하십시오. 그것은 당신을 묻습니다 project nametemplate engine, email컨트롤 패널, 그리고에 이렇게. 무엇을 선택해야할지 모른다면 기본값이 좋습니다. 키스톤 설정을 구성한 후에는 node keystone응용 프로그램을 시작하기 위해 입력하여 서버가 실행 중인지 테스트 할 수 있습니다 . 기본적으로 응용 프로그램은 localhost포트에서 실행됩니다 3000. MongoDB가 설치되어 있지 않으면 데이터베이스를 바로 사용할 수 없습니다. 나중에 자습서에서 설치하는 방법을 배울 수 있습니다.

Keystone.js의 기본 디렉토리 레이아웃은 다음과 같습니다.

  • /lib -여기에 사용자 정의 라이브러리 및 기타 코드를 저장합니다.

  • /models-애플리케이션의 데이터베이스 모델을 저장할 위치입니다. KeystoneJS는 MongoDB를 데이터베이스 제공자로 사용합니다.

  • /public -여기에는 정적 파일 (CSS, JS, 이미지 등)이 저장됩니다.

  • /routes/api -애플리케이션의 API 컨트롤러가 저장되는 위치입니다.

  • /routes.views -애플리케이션 뷰 컨트롤러가 여기에 저장됩니다.

  • /templates -여기에는 모든 응용 프로그램의 템플릿 파일이 저장됩니다.

  • /updates -여기에서 마이그레이션 스크립트가 저장됩니다.

  • package.json -생성기가 생성 한 npm 구성 파일입니다.

  • keystone.js -우리의 주요 시작 파일, 우리는 웹 사이트를 시작할 때 이것을 실행합니다.

데이터베이스 초기화

앞에서 언급 한 바와 같이, 사용할 데이터베이스는 안정적인 NoSQL 문서 지향 데이터베이스 인 MongoDB입니다. 이미 MongoDB를 설치 한 경우이 섹션을 건너 뛸 수 있습니다. 그렇지 않은 경우 Ubuntu 16.04에 설치하는 방법은 다음과 같습니다.

mongoDB 패키지에 사용 된 공개 키를 가져옵니다.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

패키지를 설치하는 데 사용되는 목록 파일을 작성하십시오.

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

를 사용하여 패키지 목록을 업데이트하십시오 apt.

sudo apt update

마지막으로 MongoDB를 설치하십시오.

sudo apt install mongodb-org -y

이 설치가 끝나면 MongoDB를 시작하십시오.

sudo service mongod start

포트에서 MongoDB 프로세스가 시작됩니다 27017.

MongoDB는 응용 프로그램 전체에서 사용되며 모델과 같이 모델에 사용하는 정보를 저장하는 데 활용됩니다 User. Keystone은이를 선택한 데이터베이스로 사용하며 현재 다른 데이터베이스 공급 업체를 사용할 수 없습니다.

PM2 설치

이제 PM2 (Process Manager 2)를 설치할 차례입니다. PM2는 npm 모듈 형식의 Node.js 애플리케이션 용 프로세스 관리자입니다. 응용 프로그램을 관리하고 백그라운드에서 실행할 수있는 쉬운 방법을 제공합니다. NPM에 있으므로 설치하기 위해해야 ​​할 일은 다음과 같습니다.

sudo npm install pm2 -g

이것은 npm에게 전 세계적으로 설치하도록 지시하므로 시스템의 어느 곳에서나 사용할 수 있습니다.

PM2에서 애플리케이션 실행 / 관리

이전에는 웹 애플리케이션을로 실행했습니다 node keystone. PM2에서는 약간 다릅니다. 이제 다음과 같이 노드 앱을 실행합니다.

pm2 start keystone.js

그러면 PM2 응용 프로그램이 프로세스 목록에 추가되고 작은 상자가 표시되어 실제로 온라인 상태임을 알 수 있습니다. id프로세스 레이블이 지정된 상자 를 확인하십시오. 나중에 이것에 대해 많은 언급을 할 것이기 때문에 이것을 가깝게 유지하십시오.

응용 프로그램의 로그를 봅니다.

pm2 logs [id]

예를 들어, pm2 logs 0이것이 첫 번째 PM2 애플리케이션 인 경우입니다.

언제든지 웹 응용 프로그램을 중지합니다.

pm2 stop [id]

응용 프로그램을 완전히 삭제합니다.

pm2 delete [id]

응용 프로그램에 대한 몇 가지 기본 통계를 보려면 PM2에 모니터링 대시 보드가 있으며이를 사용하여 액세스 할 수 있습니다.

pm2 monit

RAM 사용량, CPU 사용량 및 가동 시간과 같은 기본 정보가 표시됩니다.

PM2가 제공하는 훌륭한 기능은입니다 watching. 본질적으로 PM2가 시작 파일과 같은 디렉토리에있는 파일의 변경 사항을 자동 감지하면 응용 프로그램이 자동으로 다시 시작됩니다. 사용하려면 응용 프로그램을 다시 시작하고 감시 플래그를 전달하십시오.

pm2 restart [id] --watch

감시가 활성화 된 후 비활성화하려면 동일한 명령을 다시 실행하면 감시가 비활성화됩니다.

이 튜토리얼에서는 시청하지 않아도됩니다.

리버스 프록시 설정

Nginx가 설치되어 있는지 확인하십시오. 어떤 이유로 든 그렇지 않은 경우 위의 단계를 참조하십시오.

방화벽 설정을 조정하십시오. 우분투 ufw에는 공식 방화벽이 있습니다. 기본적으로 연결은 포트에서 차단됩니다 80. 80웹 애플리케이션이 실행될 Nginx on port에 대한 예외를 추가해야합니다 .

sudo ufw allow 'Nginx HTTP'

Nginx 서버가 실행 중인지 확인하십시오.

systemctl status nginx

Active섹션 아래에이 표시 active (running)되면 모두 설정된 것입니다. 그렇지 않은 경우 서비스를 다시 시작할 수 있습니다.

systemctl restart nginx

기본 Nginx 구성 파일을 삭제하십시오.

sudo rm /etc/nginx/sites-available/default

새로운 것을 만들고 간단히 호출하십시오 node.

sudo nano /etc/nginx/sites-available/node

다음을 파일에 붙여 넣고 example.com웹 사이트 도메인으로 바꿉니다.

listen 80;

server_name example.com;

    location / {

        proxy_set_header   X-Forwarded-For $remote_addr;

        proxy_set_header   Host $http_host;

        proxy_pass         "http://127.0.0.1:3000";
    }
}

proxy_pass키스톤 앱이 로컬에서 실행중인 IP ( localhost포트에 있음)를 나타냅니다 3000. listen 80우리가 앱을 향하게하려는 포트이며,이 경우 port 80입니다.

그런 다음이라는 폴더에 대한 심볼릭 링크 또는 심볼릭 링크를 만들어야합니다 sites-enabled. 차이 sites-enabled와는 sites-availablesites-enabled실제로 Nginx에 의해 장착된다.

sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node

이제 구성 파일 sites-available을 사용할 준비가되었으며에서로드됩니다 sites-enabled. 구성을 적용하여 적용하려면 Nginx를 다시 시작하면됩니다.

sudo systemctl restart nginx

마지막으로 PM2 응용 프로그램을 다시 시작하십시오.

pm2 restart [id]

이제 브라우저에서 도메인으로 이동할 Welcome to Keystone수 있으며 로그인 할 수있는 패널이 있는 화면 이 나타납니다 .

표시되면 Node.js 프로덕션 웹 서버를 성공적으로 설정 한 것입니다. 그렇지 않은 경우 단계를 잘못 수행 한 것일 수 있으며 돌아가서 각 단계를 신중하게 수행 할 수 있습니다.

Nginx에 대한 자세한 내용은 해당 웹 사이트 를 방문하십시오 .

이 튜토리얼을 즐기 셨기를 바랍니다. Vultr VPS에서 제작할 웹 서버를 설정하는 데 도움이 되었기를 바랍니다.



FreeBSD 12에 Neos CMS를 설치하는 방법

FreeBSD 12에 Neos CMS를 설치하는 방법

다른 시스템을 사용하십니까? Neos는 CMS와 응용 프로그램 프레임 워크가 핵심 인 콘텐츠 응용 프로그램 플랫폼입니다. 이 가이드는 설치하는 방법을 보여줍니다

Fedora 26 LAMP VPS에 Omeka Classic 2.4 CMS를 설치하는 방법

Fedora 26 LAMP VPS에 Omeka Classic 2.4 CMS를 설치하는 방법

다른 시스템을 사용하십니까? Omeka Classic 2.4 CMS는 디지털 공유를위한 무료 오픈 소스 디지털 출판 플랫폼 및 CMS (콘텐츠 관리 시스템)입니다

Ubuntu 16.04 LAMP VPS에 BlogoText CMS를 설치하는 방법

Ubuntu 16.04 LAMP VPS에 BlogoText CMS를 설치하는 방법

다른 시스템을 사용하십니까? BlogoText CMS는 단순하고 가벼운 무료 오픈 소스 CMS (콘텐츠 관리 시스템) 및 미니멀리스트 블로그 엔진입니다.

Fedora 29에 WonderCMS를 설치하는 방법

Fedora 29에 WonderCMS를 설치하는 방법

다른 시스템을 사용하십니까? WonderCMS는 PHP로 작성된 오픈 소스, 빠르고 작은 플랫 파일 CMS입니다. WonderCMS 소스 코드는 Github에서 호스팅됩니다. 이 안내서는

데비안 9에 Neos CMS를 설치하는 방법

데비안 9에 Neos CMS를 설치하는 방법

다른 시스템을 사용하십니까? Neos는 CMS와 응용 프로그램 프레임 워크가 핵심 인 콘텐츠 응용 프로그램 플랫폼입니다. 이 가이드는 설치하는 방법을 보여줍니다

Fedora 26 LAMP VPS에 Directus 6.4 CMS를 설치하는 방법

Fedora 26 LAMP VPS에 Directus 6.4 CMS를 설치하는 방법

다른 시스템을 사용하십니까? Directus 6.4 CMS는 개발자에게 제공하는 강력하고 유연한 무료 오픈 소스 헤드리스 콘텐츠 관리 시스템 (CMS)입니다

CentOS 7 LAMP VPS에 TextPattern CMS를 설치하는 방법

CentOS 7 LAMP VPS에 TextPattern CMS를 설치하는 방법

다른 시스템을 사용하십니까? TextPattern CMS 4.6.2는 간단하고 유연하며 무료이며 오픈 소스 CMS (콘텐츠 관리 시스템)로 웹 디자이너는

FreeBSD 11 FAMP VPS에 ProcessWire CMS 3.0을 설치하는 방법

FreeBSD 11 FAMP VPS에 ProcessWire CMS 3.0을 설치하는 방법

다른 시스템을 사용하십니까? ProcessWire CMS 3.0은 간단하고 유연하며 강력하며 무료이며 오픈 소스 CMS (콘텐츠 관리 시스템)입니다. ProcessWire CMS 3.

Ubuntu 16.04 LAMP VPS에 10 월 1.0 CMS를 설치하는 방법

Ubuntu 16.04 LAMP VPS에 10 월 1.0 CMS를 설치하는 방법

다른 시스템을 사용하십니까? 10 월 1.0 CMS는 Laravel 프레임 워크에 구축 된 간단하고 안정적인 무료 공개 소스 CMS (콘텐츠 관리 시스템)입니다.

CentOS 7에 Automad CMS를 설치하는 방법

CentOS 7에 Automad CMS를 설치하는 방법

다른 시스템을 사용하십니까? Automad는 오픈 소스 파일 기반 컨텐츠 관리 시스템 (CMS) 및 PHP로 작성된 템플릿 엔진입니다. Automad 소스 코드 i

FreeBSD 11에 PyroCMS를 설치하는 방법

FreeBSD 11에 PyroCMS를 설치하는 방법

다른 시스템을 사용하십니까? PyroCMS는 PHP로 작성된 오픈 소스 CMS입니다. PyroCMS 소스 코드는 GitHub에서 호스팅됩니다. 이 가이드에서는 입구를 잘 살펴보십시오.

Ubuntu 18.04 LTS에 Tiki Wiki CMS Groupware 설치

Ubuntu 18.04 LTS에 Tiki Wiki CMS Groupware 설치

다른 시스템을 사용하십니까? 소개 티키 위키 CMS 그룹웨어 (티키라고도 함)는 무료 오픈 소스 위키 컨텐츠 관리 시스템입니다. 티 키스 기능

Fedora 28에 PyroCMS를 설치하는 방법

Fedora 28에 PyroCMS를 설치하는 방법

다른 시스템을 사용하십니까? PyroCMS는 PHP로 작성된 오픈 소스 CMS입니다. PyroCMS 소스 코드는 GitHub에서 호스팅됩니다. 이 가이드에서는 입구를 잘 살펴보십시오.

Debian 9에 PyroCMS를 설치하는 방법

Debian 9에 PyroCMS를 설치하는 방법

다른 시스템을 사용하십니까? PyroCMS는 PHP로 작성된 오픈 소스 CMS입니다. PyroCMS 소스 코드는 GitHub에서 호스팅됩니다. 이 가이드에서는 입구를 잘 살펴보십시오.

Debian 9 LAMP VPS에 ProcessWire CMS 3.0을 설치하는 방법

Debian 9 LAMP VPS에 ProcessWire CMS 3.0을 설치하는 방법

다른 시스템을 사용하십니까? ProcessWire CMS 3.0은 간단하고 유연하며 강력하며 무료이며 오픈 소스 CMS (콘텐츠 관리 시스템)입니다. ProcessWire CMS 3.

CentOS 7에 Microweber를 설치하는 방법

CentOS 7에 Microweber를 설치하는 방법

다른 시스템을 사용하십니까? Microweber는 오픈 소스 끌어서 놓기 CMS 및 온라인 상점입니다. Microweber 소스 코드는 GitHub에서 호스팅됩니다. 이 가이드는 요를 보여줍니다

Ubuntu 16.04에 Microweber 설치

Ubuntu 16.04에 Microweber 설치

다른 시스템을 사용하십니까? Microweber는 오픈 소스 끌어서 놓기 CMS 및 온라인 상점입니다. Microweber 소스 코드는 GitHub에서 호스팅됩니다. 이 가이드는 요를 보여줍니다

CentOS 7 LAMP VPS에 ImpressPages CMS 5.0을 설치하는 방법

CentOS 7 LAMP VPS에 ImpressPages CMS 5.0을 설치하는 방법

다른 시스템을 사용하십니까? ImpressPages CMS 5.0은 간단하고 효과적이며 무료이며 오픈 소스이며 사용자에게 친숙한 MVC 기반 콘텐츠 관리 시스템 (CMS)입니다.

CentOS 7에 WonderCMS를 설치하는 방법

CentOS 7에 WonderCMS를 설치하는 방법

다른 시스템을 사용하십니까? WonderCMS는 PHP로 작성된 오픈 소스, 빠르고 작은 플랫 파일 CMS입니다. WonderCMS 소스 코드는 Github에서 호스팅됩니다. 이 안내서는

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true

기술적 특이점: 인류 문명의 먼 미래?

기술적 특이점: 인류 문명의 먼 미래?

과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

2021년 의료 분야에서 인공 지능의 영향

2021년 의료 분야에서 인공 지능의 영향

의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.