Изучение 26 методов анализа больших данных: часть 1
Изучение 26 методов анализа больших данных: часть 1
NodeBB - это программное обеспечение для форумов на базе Node.js. Он использует веб-сокеты для мгновенного взаимодействия и уведомления в режиме реального времени. Исходный код NodeBB публично размещен на Github . Это руководство проведет вас через процесс установки NodeBB на свежий экземпляр FreeBSD 12 Vultr, используя Node.js, MongoDB в качестве базы данных, Nginx в качестве обратного прокси-сервера и Acme.sh для SSL-сертификатов.
NodeBB требует установки следующего программного обеспечения:
A
/ AAAA
записи настроеныПроверьте версию FreeBSD.
uname -ro
# FreeBSD 12.0-RELEASE
Убедитесь, что ваша система FreeBSD обновлена.
freebsd-update fetch install
pkg update && pkg upgrade -y
Установите необходимые пакеты, если их нет в вашей системе.
pkg install -y sudo vim unzip wget git bash socat gcc8 pkgconf vips
Создайте новую учетную запись пользователя с вашим предпочтительным именем пользователя (мы будем использовать johndoe
).
adduser
# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!
Запустите visudo
команду и раскомментируйте %wheel ALL=(ALL) ALL
строку, чтобы члены wheel
группы могли выполнить любую команду.
visudo
# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL
Теперь переключитесь на нового пользователя с помощью su
.
su - johndoe
ПРИМЕЧАНИЕ. Замените johndoe
на свое имя пользователя.
Установите часовой пояс.
sudo tzsetup
NodeBB управляется Node.js, поэтому его необходимо установить. Рекомендуется установить текущую LTS-версию Node.js.
Установите Node.js и npm.
sudo pkg install -y node10 npm-node10
Проверьте версии.
node -v && npm -v
# v10.15.3
# 6.9.0
MongoDB является базой данных по умолчанию для NodeBB.
Установите MongoDB.
sudo pkg install -y mongodb40
Проверьте версию.
mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.0.6
# db version v4.0.6
Включите и запустите MongoDB.
sudo sysrc mongod_enable=yes
sudo service mongod start
Создайте базу данных и пользователя для NodeBB.
Сначала подключитесь к MongoDB.
mongo
Переключиться на встроенную admin
базу данных.
> use admin
Создать административного пользователя.
> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )
ПРИМЕЧАНИЕ. Замените местозаполнитель <Enter a secure password>
собственным выбранным паролем.
Добавьте новую базу данных с именем nodebb
.
> use nodebb
База данных будет создана и контекст переключен на nodebb
. Затем создайте nodebb
пользователя с соответствующими привилегиями.
> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
ПРИМЕЧАНИЕ. Снова замените заполнитель <Enter a secure password>
на выбранный вами пароль.
Выход из оболочки Монго.
> quit()
Перезапустите MongoDB и убедитесь, что созданный ранее администратор может подключиться.
sudo service mongod restart
mongo -u admin -p your_password --authenticationDatabase=admin
Установите Nginx.
sudo pkg install -y nginx
Проверьте версию.
nginx -v
# nginx version: nginx/1.14.2
Включите и запустите Nginx.
sudo sysrc nginx_enable=yes
sudo service nginx start
NodeBB по умолчанию работает на порту 4567
. Чтобы не печатать http://example.com:4567
, мы настроим Nginx как обратный прокси-сервер для приложения NodeBB. Каждый запрос на порт 80
или 443
, если используется SSL, будет перенаправлен на порт 4567
.
Запустите sudo vim /usr/local/etc/nginx/nodebb.conf
и заполните его базовой конфигурацией обратного прокси ниже.
server {
listen [::]:80;
listen 80;
server_name forum.example.com;
root /usr/share/nginx/html;
client_max_body_size 50M;
location /.well-known/acme-challenge/ {
allow all;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_hide_header X-Powered-By;
proxy_set_header X-Nginx-Proxy true;
proxy_pass http://127.0.0.1:4567;
proxy_redirect off;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
В приведенном выше конфиге обновите server_name
директиву, указав свой домен / имя хоста.
Сохраните файл и выйдите с помощью :+ W+ Q.
Теперь нам нужно включить nodebb.conf
в основной nginx.conf
файл.
Запустите sudo vim /usr/local/etc/nginx/nginx.conf
и добавьте следующую строку в http {}
блок.
include nodebb.conf;
Проверьте конфигурацию.
sudo nginx -t
Перезагрузить Nginx.
sudo service nginx reload
Защита вашего форума с помощью HTTPS не обязательна, но это защитит трафик вашего сайта. Acme.sh - это чистая оболочка Unix для получения SSL-сертификатов от Let's Encrypt с нулевыми зависимостями.
Загрузите и установите Acme.sh.
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
Проверьте версию.
/etc/letsencrypt/acme.sh --version
# v2.8.1
Получить сертификаты RSA и ECDSA для forum.example.com
.
# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo service nginx reload" --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo service nginx reload" --keylength ec-256
После выполнения вышеуказанных команд ваши сертификаты и ключи будут в:
/etc/letsencrypt/forum.example.com
./etc/letsencrypt/forum.example.com_ecc
.После получения сертификатов от Let's Encrypt нам необходимо настроить Nginx для их использования.
Запустите sudo vim /usr/local/etc/nginx/nodebb.conf
снова и настройте Nginx в качестве обратного прокси-сервера HTTPS.
server {
listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;
server_name forum.example.com;
root /usr/share/nginx/html;
client_max_body_size 50M;
location /.well-known/acme-challenge/ {
allow all;
}
# RSA
ssl_certificate /etc/letsencrypt/forum.example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/forum.example.com/forum.example.com.key;
# ECDSA
ssl_certificate /etc/letsencrypt/forum.example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/forum.example.com_ecc/forum.example.com.key;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:4567;
proxy_redirect off;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Проверьте конфигурацию.
sudo nginx -t
Перезагрузить Nginx.
sudo service nginx reload
Создайте корневой каталог документа.
sudo mkdir -p /usr/local/www/nodebb
Изменить владельца /usr/local/www/nodebb
каталога на johndoe
.
sudo chown -R johndoe:johndoe /usr/local/www/nodebb
Перейдите в корневую папку документа.
cd /usr/local/www/nodebb
Клонируйте последний NodeBB в корневую папку документа.
git clone -b v1.11.x https://github.com/NodeBB/NodeBB.git .
Запустите команду установки NodeBB и ответьте на каждый вопрос, когда будет предложено.
./nodebb setup
После завершения настройки NodeBB запустите, ./nodebb start
чтобы вручную запустить сервер NodeBB.
./nodebb start
После этой команды вы сможете получить доступ к своему форуму NodeBB в веб-браузере.
При запуске через ./nodebb start
NodeBB не будет автоматически запускаться снова при перезагрузке системы. Чтобы избежать этого, нам нужно настроить NodeBB в качестве системного сервиса.
Если работает, остановите NodeBB.
./nodebb stop
Установите PM2 глобально.
sudo npm install pm2 -g
Проверьте версию.
pm2 -v
# 3.5.0
Перейдите к корню документа NodeBB.
cd /usr/local/www/nodebb
Запустите NodeBB через PM2.
pm2 start app.js
Перечислите процесс NodeBB.
pm2 ls
Определите доступную систему инициализации.
pm2 startup
Скопируйте и вставьте выходные данные этой команды в CLI, чтобы настроить ваш загрузочный хук.
Сохраните ваш список процессов.
pm2 save
Вот и все. Ваш экземпляр NodeBB теперь запущен и работает.
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше