Как настроить веб-приложение Meteor.js с MongoDB и Apache в Ubuntu 16.04 LTS

Meteor.js - это JavaScript-фреймворк с открытым исходным кодом, созданный с учетом Node.js. Он популярен из-за своего подхода к созданию веб-приложений на чистом JavaScript. Meteor включает поддержку интерфейсного JavaScript, который работает в веб-браузере, а также фоновый JavaScript, который запускается на хост-сервере. Он очень хорошо интегрируется с внешними JavaScript-фреймворками, такими как React и Angular.js, а также с MongoDB, популярной базой данных NoSQL. Вот несколько веских причин выбрать Meteor.js:

  • Meteor.js - фреймворк с полным стеком. Таким образом, вы получаете все, что вам когда-либо может понадобиться: базу данных, интерфейс, серверную часть. Метеор делает удивительную работу, связывая все это вместе.

  • Скорость. Интуитивно понятная система пакетов Meteor предоставляет вам множество инструментов, которые могут вам понадобиться для совершенствования вашего приложения.

  • Он имеет хорошую поддержку со стороны Meteor Developer Group, а также других разработчиков, которые его используют. Вы легко сможете определить любые проблемы и быстро их решить.

В этом руководстве мы достигнем следующих целей в Ubuntu 16.04:

  • Установите Node.jsнашу среду выполнения Javascript.

  • Установить Meteor.js.

  • Установите MongoDB, базу данных Метеор по выбору.

  • Установите Apacheнаш обратный прокси-сервер и настройте наш домен, если это применимо.

  • Протестируйте наш сайт.

  • Настройте наш сайт для производства.

Установка Node.js

Сначала вам нужно установить Node.js, который является нашим интерпретатором JavaScript, и ядро ​​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. Он использует JSON-подобный формат для своих документов, в отличие от структурированных таблиц в традиционной базе данных SQL.

Импортируйте открытый ключ MongoDB, используемый APT(Advanced Packaging Terminal). Это позволяет 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

Откройте сервис systemd для редактирования.

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

Скопируйте и вставьте следующее, чтобы завершить службу systemd.

[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» для выхода.

Запустите службу MongoDB systemd, набрав sudo systemctl start mongodbв своем терминале.

Чтобы убедиться, что он успешно запущен, введите следующее.

sudo systemctl status mongodb

Вы увидите, что услуга активна.

Установка и настройка Apache2

Далее мы установим Apache. Apache - это бесплатное программное обеспечение с открытым исходным кодом для веб-сервера, которое также функционирует в качестве обратного прокси-сервера, что мы и будем использовать в этом руководстве. Обратный прокси-сервер необходим для привязки нашего приложения Meteor.js к port 80. Node.js блокирует запуск приложений на этом порту без доступа root. Apache работает так же rootавтоматически, как и привязывается к нему port 80, поэтому нам не придется беспокоиться об этом, когда придет время запустить наш веб-сайт.

Установите Apache.

sudo apt update && sudo apt install apache2

Чтобы разрешить доступ к внешним веб-портам, таким как port 80, нам нужно настроить наш брандмауэр для Apache. Мы делаем это через UFW(Uncomplicated Firewall).

sudo ufw allow 'Apache Full'

Это позволит получить доступ к Apache Fullпрофилю " ". Это дает нам входящий трафик port 80, на котором будет работать наше приложение.

Установка Meteor.js и создание нашего базового приложения

Теперь мы установим наш веб-фреймворк Meteor.js. Для его установки мы будем использовать простой bash-скрипт, предоставленный командой Meteor.

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

Дождитесь окончания установки. В основном сценарий загружает Meteor с официального сайта и устанавливает его по всему миру, поэтому мы можем использовать его из любого места. Как только это будет сделано, мы можем создать каталог нашего приложения. У Метеора есть небольшой удобный инструмент для этого, называемый meteor create. Чтобы создать каталог приложения, введите следующее.

meteor create <projectname>

Папка будет создана с указанным именем ( <projectname>).

Настройка нашего обратного прокси Apache

Теперь, когда у нас настроен каталог приложений, мы можем приступить к настройке обратного прокси-сервера. Apache использует модуль под названием mod_proxy, который реализует прокси для Apache.

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

Это установит модуль и сделает его доступным для использования Apache.

Далее нам нужно будет включить все необходимые модули, необходимые для работы Apache. Мы сделаем это с a2enmodпомощью инструмента, который включает модули для Apache. Эти модули позволят нам воспользоваться преимуществами обратного прокси. Просто введите эти команды в свой терминал.

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-адрес сайта, который вы хотите перенаправить на обратный прокси. Скорее всего, это будет IP вашего VPS

  • ServerName: Имя вашего сервера (обычно это имя по умолчанию localhost).

Закончив настройку необходимых параметров, используйте « Control-O» для сохранения и « Control-X» для выхода.

Запуск сайта в первый раз

Чтобы проверить и убедиться, что веб-сайт работает, введите следующее в каталоге проекта.

meteor

Вы увидите следующий вывод, показывающий, что ваш сайт успешно запущен.

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

Обратите внимание, что Meteor по умолчанию прослушивает port 3000.

Настройка нашего сайта для производства

Чтобы наше приложение могло работать, мы будем использовать сервис systemd. Подобно тому, что мы сделали выше с MongoDB, эта системная служба будет гарантировать, что наш веб-сайт будет запускаться при каждом запуске нашей системы и продолжать работать. Он также перезапустит наше приложение в случае его сбоя по какой-либо причине. Чтобы настроить наш сервис systemd, введите в своем терминале следующее.

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

Примечание : не забудьте заменить projectnameимя проекта и yourusernameимя пользователя VPS.

Вот несколько ключевых моментов, о которых вы должны помнить.

  • 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 для хранения любых данных, которые вам могут понадобиться, и Node.js, который предлагает множество модулей, доступных через Node Package Manager ( NPM), для дальнейшего укрепления вашего бэкэнда. Для получения дополнительной документации, не стесняйтесь посетить сайт Метеор , где вы можете узнать, как настроить свой сайт по своему вкусу. Также вы можете обратиться к документации MongoDB , когда вы имеете дело с операциями с базой данных.



Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше