Ubuntu 16.04 LTS에서 MongoDB 및 Apache를 사용하여 Meteor.js 웹 애플리케이션을 설정하는 방법

Meteor.js는 Node.js를 염두에두고 작성된 오픈 소스 JavaScript 프레임 워크입니다. 순수한 JavaScript로 웹 애플리케이션을 빌드한다는 관점에서 인기가 있습니다. Meteor는 웹 브라우저에서 실행되는 프론트 엔드 JavaScript 지원과 호스트 서버에서 실행되는 백엔드 JavaScript를 통합합니다. React 및 Angular.js와 같은 프론트 엔드 JavaScript 프레임 워크와 인기있는 NoSQL 데이터베이스 인 MongoDB와 매우 잘 통합됩니다. Meteor.js를 선택해야하는 몇 가지 큰 이유는 다음과 같습니다.

  • Meteor.js는 풀 스택 프레임 워크입니다. 따라서 데이터베이스, 프런트 엔드, 백엔드 등 필요한 모든 것을 얻을 수 있습니다. Meteor는 모든 것을 하나로 묶는 놀라운 일을합니다.

  • 속도. Meteor의 직관적 인 패키지 시스템은 어플리케이션을 완성하는 데 필요한 많은 도구를 제공합니다.

  • Meteor Developer Group과이를 사용하는 동료 개발자의 지원을 잘받습니다. 발생할 수있는 문제를 쉽게 파악하고 신속하게 해결할 수 있습니다.

이 튜토리얼에서는 Ubuntu 16.04에서 다음 목표를 달성합니다.

  • Node.jsJavascript 런타임을 설치하십시오 .

  • 설치하십시오 Meteor.js.

  • MongoDB선택한 Meteor의 데이터베이스를 설치하십시오 .

  • Apache리버스 프록시 선택을 설치 하고 해당되는 경우 도메인을 설정하십시오.

  • 웹 사이트를 테스트하십시오.

  • 생산을 위해 웹 사이트를 설정하십시오.

Node.js 설치

먼저 JavaScript 인터프리터 인 Node.js와 Meteor의 핵심을 설치해야합니다. 이를 통해 Meteor 및 향후 Node.js 응용 프로그램을 실행할 수 있습니다. 이 상황에서는 Node.js 8을 설치하게됩니다. 다운로드를 시작하려면 터미널에서 다음을 실행하면됩니다.

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

다운로드 및 설치가 완료 될 때까지 기다리십시오.

MongoDB 설치

다음으로 데이터베이스 MongoDB를 설치합니다. MongoDB는 무료 오픈 소스 NoSQL 문서 데이터베이스이며 선택한 Meteor 데이터베이스입니다. 기존 SQL 데이터베이스의 구조화 된 테이블과 달리 문서에 JSON과 유사한 형식을 사용합니다.

APT(고급 패키징 터미널)에서 사용하는 MongoDB 공개 키를 가져옵니다 . 이를 통해 APT는 패키지를 확인할 수 있습니다. 이 경우에는 MongoDB입니다.

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

Ubuntu 16.04에 필요한 목록 파일을 작성하십시오.

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

MongoDB 설치를 시작하고 설치가 완료 될 때까지 기다리십시오.

sudo apt update && sudo apt install mongodb-org -y

편집 할 시스템 서비스를 엽니 다.

sudo nano /etc/systemd/system/mongodb.service

다음을 복사하여 붙여 넣어 시스템 서비스를 완료하십시오.

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

" Control-O"를 사용 하여 저장하고 " Control-X"를 사용하여 종료하십시오.

sudo systemctl start mongodb터미널 에 입력하여 MongoDB 시스템 서비스를 실행하십시오 .

성공적으로 시작되었는지 확인하려면 다음을 입력하십시오.

sudo systemctl status mongodb

서비스가 활성화되어 있음을 알 수 있습니다.

Apache2 설치 및 설정

다음으로 Apache를 설치합니다. Apache는 무료 오픈 소스 웹 서버 소프트웨어이며 리버스 프록시로도 작동하므로이 자습서에서 활용할 것입니다. Meteor.js 애플리케이션을에 바인딩하려면 리버스 프록시가 필요합니다 port 80. Node.js는 루트 액세스없이 해당 포트에서 애플리케이션이 실행되지 않도록 차단합니다. Apache는 root자동으로 실행되고에 바인딩 port 80되므로 웹 사이트를 실행할 때 걱정할 필요가 없습니다.

Apache를 설치하십시오.

sudo apt update && sudo apt install apache2

와 같은 외부 웹 포트에 대한 액세스를 허용하려면 port 80Apache 용 방화벽을 구성해야합니다. 우리는 UFW(복잡한 방화벽)을 통해이 작업을 수행합니다 .

sudo ufw allow 'Apache Full'

이렇게하면 " Apache Full"프로필에 액세스 할 수 있습니다 . 이를 통해 수신 트래픽이 발생하여 port 80애플리케이션이 실행됩니다.

Meteor.js 설치 및 기본 애플리케이션 생성

이제 웹 프레임 워크 인 Meteor.js를 설치하겠습니다. Meteor 팀에서 제공하는 간단한 bash 스크립트를 사용하여 설치합니다.

curl https://install.meteor.com/ | sh

설치가 완료 될 때까지 기다리십시오. 기본적으로 스크립트는 공식 웹 사이트에서 Meteor를 다운로드하여 전 세계에 설치하므로 어디에서나 사용할 수 있습니다. 완료되면 응용 프로그램 디렉토리를 만들 수 있습니다. Meteor에는이를 위해 사용할 수있는 편리한 도구가 있습니다 meteor create. 응용 프로그램 디렉토리를 만들려면 다음을 입력하십시오.

meteor create <projectname>

지정된 이름으로 폴더가 생성됩니다 ( <projectname>).

Apache 리버스 프록시 설정

이제 응용 프로그램 디렉토리를 설정 했으므로 리버스 프록시 설정을 진행할 수 있습니다. Apache는 Apache라는 mod_proxy프록시를 구현하는 이라는 모듈을 사용합니다 .

sudo apt-get install libapache2-mod-proxy-html libxml2-dev -y

그러면 모듈이 설치되고 Apache에서 사용할 수있게됩니다.

다음으로 Apache가 실행하는 데 필요한 모든 모듈을 활성화해야합니다. a2enmodApache 용 모듈을 활성화하는 도구 인을 사용 하여이 작업을 수행합니다 . 이 모듈을 사용하면 리버스 프록시를 활용할 수 있습니다. 터미널에 이러한 명령을 입력하십시오.

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html

그런 다음 기본 Apache 사이트가 시작되지 않도록해야 자체 사이트를 시작할 수 있습니다. 그렇지 않으면 기본 Apache 응용 프로그램이 우리를 대체합니다. 기본 사이트를 비활성화하려면 다음을 실행하십시오.

sudo a2dissite 000-default

이제 가상 호스트 파일을 만듭니다. 그렇게하려면 텍스트 편집기를여십시오.

sudo nano /etc/apache2/sites-available/<projectname>

다음을 복사하여 붙여 넣습니다.

<VirtualHost *:80>
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  ProxyPreserveHost On
  # Servers to proxy the connection, or
  # List of application servers Usage
  ProxyPass / http://0.0.0.0:3000/
 ServerName localhost
</VirtualHost>
  • VirtualHost *:80: Apache에게 웹 애플리케이션에 필요한 포트 80에 연결하도록 지시합니다.

  • ProxyPass: 리버스 프록시로 전달하려는 사이트의 IP 주소입니다. VPS의 IP 일 가능성이 높습니다

  • ServerName: 서버 이름 (기본 이름은 보통 localhost)입니다.

필요한 설정을 모두 마치면 " Control-O"를 사용 하여 저장하고 " Control-X"를 사용하여 종료하십시오.

처음으로 사이트 운영

테스트하고 웹 사이트가 실행 중인지 확인하려면 프로젝트 디렉토리에 다음을 입력하십시오.

meteor

사이트가 성공적으로 시작되었음을 보여주는 다음 출력이 표시됩니다.

=> App running at: http://localhost:3000/

Meteor는 기본적으로를 수신합니다 port 3000.

생산을위한 웹 사이트 구축

앱이 계속 작동 할 수 있도록 시스템 서비스를 사용합니다. 위에서 우리가 MongoDB로했던 것과 유사하게,이 시스템 서비스는 시스템이 시작될 때마다 웹 사이트가 시작되고 계속 실행되도록합니다. 또한 어떤 이유로 든 충돌하는 경우 응용 프로그램을 다시 시작합니다. 시스템 서비스를 설정하려면 터미널에 다음을 입력하십시오.

sudo nano /etc/systemd/system/<projectname>.service

파일 모양은 다음과 같습니다.

[Service]
WorkingDirectory=/home/<yourusername>/<projectname>
ExecStart=/usr/local/bin/meteor --production
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<projectName>
User=<yourusername>
Environment=NODE_ENV=production
Environment=PWD=/home/<yourusername>/<projectname>
Environment=PORT=3000
Environment=HTTP_FORWARDED_COUNT=1

참고 : 프로젝트 이름과 VPS의 사용자 이름 으로 바꾸는 것을 잊지 마십시오 .projectnameyourusername

다음은 명심해야 할 몇 가지 주요 내용입니다.

  • WorkingDirectory: 응용 프로그램의 디렉토리입니다.

  • Restart: 어떤 이유로 든 응용 프로그램을 다시 시작할지 여부를 중지합니다.

  • User: 사용자 이름

  • Environment=PWD:와 동일합니다 WorkingDirectory.

  • Environment=PORT: 애플리케이션이 실행중인 포트입니다. 기본값은 3000입니다.

파일을 저장하고 닫습니다.

이제 서비스를 활성화하고 시작합니다.

sudo systemctl enable <projectname>.service

<projectname>우리가 만든 서비스 파일의 이름은 어디에 있습니까 ?

그런 다음 서비스를 시작합니다.

sudo systemctl start <projectname>.service

응용 프로그램이 시작됩니다. 시작되었는지 확인하려면 다음을 실행하십시오.

sudo systemctl status <projectname>

서비스가 성공적으로 시작되었는지 확인하면서 활성화되어 있음을 알 수 있습니다.

다음으로 웹 사이트를 확인하십시오. 선택한 웹 브라우저에서 IP 주소로 이동하십시오.

http://your-server-ip/

모든 것이 올바르게 완료되었는지 확인하는 Meteor 샘플 화면이 표시됩니다.

응용 프로그램 관리

이제 응용 프로그램을 시작 했으므로 관리해야합니다.

응용 프로그램 재시작

sudo systemctl restart <projectname>

응용 프로그램 중지

sudo systemctl stop <projectname>

응용 프로그램 상태보기

sudo systemctl status <projectname>

로그보기

journalctl -u <projectname>

이제 MongoDB, Apache 및 Meteor를 성공적으로 구성했으며 프로덕션 용 Meteor.js 웹 서버를 작성했습니다. 이제 나머지는 당신에게 달려 있습니다. 프론트 엔드와 백 엔드에서 웹 사이트를 디자인하십시오. 필요한 데이터를 저장하기 위해 MongoDB에 액세스 할 수 있으며 NPM백엔드를 더욱 강화하기 위해 Node Package Manager ( )를 통해 사용 가능한 다양한 모듈을 제공하는 Node.js가 있습니다 . 자세한 내용은 Meteor 사이트 를 방문 하십시오. 웹 사이트를 원하는대로 사용자 정의하는 방법을 자세히 배울 수 있습니다. 또한 데이터베이스 조작을 처리 할 때 MongoDB 문서를 참조하십시오 .



Leave a Comment

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의 미래는 여전히 나날이 성장하고 있습니다.