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 , когда вы имеете дело с операциями с базой данных.