Встановіть Plesk на CentOS 7
Використання іншої системи? Plesk — це власна панель керування веб-хостом, яка дозволяє користувачам адмініструвати свої персональні та/або клієнтські веб-сайти, бази даних
У цьому підручнику ми навчимося налаштувати веб-додаток Koa.js для виробництва, використовуючи Node.js. Ми також зв’яжемо зразок домену зі зворотним проксі-сервером, використовуючи Apache, і дізнаємося, як керувати ним за допомогою належного менеджера процесів. Без зайвих розмов, почнемо.
Node.js – це швидка міжплатформна платформа JavaScript на основі двигуна Chrome V8. Він використовується як у настільних, так і в серверних програмах і відомий своєю однопоточною обробкою циклу подій. Node.js містить реєстр пакетів під назвою Node Package Manager (NPM), який містить понад півмільйона пакетів. Пакунки (або модулі) NPM є основною основою Node.js, оскільки вони є керованим спільнотою кодом, який може бути корисним у вашій програмі Node.js. У нашому додатку Koa.js Node.js є основною частиною його функції.
Koa.js — це мінімалістичний веб-фреймворк, побудований на платформі Node.js. Створена тією ж командою, яка стоїть за популярним фреймворком Express.js, його мета полягає в подальшому мінімізації і без того мінімалістичного фреймворку Express.js, виключаючи проміжне програмне забезпечення з його ядра. Основною особливістю Koa.js є той факт, що немає зворотних викликів. Koa.js побудовано на основі генераторів ES6 і функцій ES6, таких як Promises.
Apache — популярний веб-сервер з відкритим кодом, який використовується як базова відправна точка для веб-серверів. У цьому підручнику ми будемо використовувати Apache як зворотний проксі-сервер, що дозволить нам пов’язати нашу програму зі зразком домену. Якщо у вас немає домену, цей посібник все одно працюватиме для вас, з тією лише різницею, що веб-сайт працюватиме на вашому VPS IP, а не на домені.
Як і в будь-якому фреймворку Node.js, вам потрібно буде встановити Node.js на вашому VPS. Заради цього підручника я припускаю, що у вас уже встановлено Node.js у вашій системі. Якщо ні, ви можете просто дотримуватись інструкцій тут .
Нам потрібно створити папку, яка міститиме основні файли нашої програми.
mkdir site
Не соромтеся замінити site
на будь-яке інше ім’я каталогу, яке ви хочете. Далі нам потрібно буде ініціалізувати наш файл пакета Node.js. Перейдіть до каталогу, який ви щойно створили, запустіть npm init
і виконайте підказки. У підсумку це має виглядати приблизно так:
{
"name": "site",
"version": "1.0.0",
"description": "Koa.js Site",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "yourname",
"license": "ISC"
}
Тепер, коли ми налаштували наш каталог, ми можемо перейти до встановлення Koa.js. У поточному робочому каталозі /site
введіть наступне.
npm install koa
Це завантажить модуль Koa.js з NPM і встановить його в каталозі нашого проекту для подальшого використання. Далі ми створимо наш зразок файлу програми, який міститиме наш код програми. Для цього створіть index.js
файл.
nano index.js
Потрапивши у файл, створіть зразок програми.
const Koa = require('koa');
const app = new Koa();
app.use(async ctx => {
ctx.body = 'Hello World';
});
app.listen(3000);
console.log('Website is live!')
Збережіть і закрийте файл. CTRL+ X.
Ми хочемо переконатися, що наша програма працює належним чином. Щоб запустити його, запустіть node index.js
, і ви побачите Website is live
в консолі.
Тепер, коли ми знаємо, що наш веб-сайт функціонує, ми можемо перейти до встановлення Apache та його залежностей.
sudo apt install -y libapache2-mod-proxy-html libxml2-dev
Щоб використовувати функцію зворотного проксі, знайдену в Apache, нам потрібно ввімкнути необхідні модулі.
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html
Деякі з цих модулів, можливо, вже ввімкнено, але завжди корисно їх перевіряти.
Тепер нам потрібно відредагувати файл конфігурації за замовчуванням для Apache.
sudo nano /etc/apache2/sites-enabled/000-default.conf
Тут нам потрібно буде додати блок для нашої програми.
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://0.0.0.0:3000/
ProxyPassReverse / http://0.0.0.0:3000
ServerName localhost
</VirtualHost>
Збережіть файл, CTRL+ X.
Ви можете помітити, що ми використовуємо порт 3000
як порт для нашого ProxyPass
та ProxyPassReverse
IP. Оскільки це той самий порт, на якому ми запускаємо нашу програму Koa.js, необхідно ввести правильний порт.
Щойно зміни будуть внесені, нам потрібно буде перезапустити Apache та перезапустити нашу програму Koa.js.
sudo systemctl restart apache2
Це гарантує, що наш файл конфігурації активний і готовий до роботи, коли ми запускаємо нашу програму Koa.js. Після перезавантаження Apache поверніться до каталогу свого сайту та запустіть програму Koa.js, як ми це робили раніше. У веб-переглядачі перейдіть до http://yourdomain
або http://yourip:
, і ви побачите «Hello World».
Тепер, коли ми розглянули основи створення прикладу програми Koa.js, ми розуміємо, що у виробничому середовищі запускати програму, як ми зараз, недоцільно. Менеджер процесів, безумовно, є вимогою. Ось тут у гру вступає systemd. Простіше кажучи, systemd складається з програмного забезпечення, яке забезпечує будівельні блоки для системи Linux. Подібно до "init", він забезпечує систему керування процесами користувача після запуску системи. У випадку з нашою програмою systemd дозволяє нам автоматично запускати наш веб-сайт після перезавантаження системи, якщо станеться подія, яка порушить роботу системи. Він також надає набір інструментів, які можуть стати в нагоді під час керування нашим додатком. Найприємніше те, що він вбудований в Ubuntu 16.04 LTS, тому нам не потрібно встановлювати будь-яке додаткове програмне забезпечення.
Все, що нам потрібно для запуску нашої програми, буде міститись у файлі під назвою service
. У ньому містяться відомості про наш додаток, наприклад його назва, каталог, середовище тощо. Щоб створити наш системний файл, відкрийте текстовий редактор.
sudo nano /lib/systemd/system/site.service
Відредагуйте та збережіть файл таким чином.
[Unit]
Description=desc here
Documentation=https://example.com
After=network.target
[Service]
Environment=NODE_PORT=3000
Type=simple
User=youruser
ExecStart=/usr/bin/node /home/[youruser]/site/index.js
Restart=on-failure
[Install]
WantedBy=multi-user.target
Замініть youruser
ім’ям користувача вашого сервера. Ось короткий опис важливих полів:
After
- Це повідомляє systemd, щоб перед запуском нашої програми зачекати, поки мережевий інтерфейс буде готовий.Environment
- Тут ми можемо вказати змінні середовища для нашої програми. Наш порт Node.js є одним із них.Type
- Це повідомляє systemd, що нашу програму можна просто запустити, без роздвоєння привілеїв користувача тощо.User
- Це повідомляє systemd, що ми хочемо запустити програму під нашим обліковим записом користувача, що рекомендується. Запуск програм від імені користувача root може призвести до багатьох компромісів у безпеці.ExecStart
- По суті, команда, яку systemd запускатиме для запуску нашої програми, подібно до того, як ми запускали її вручну раніше.Restart
- Повідомляє systemd, за яких умов перезапустити нашу програму. У цьому випадку ми хочемо перезапустити наш веб-сайт у разі помилки.Тепер ми готові запустити нашу службу systemd.
sudo systemctl daemon-reload
Це необхідно, коли файл служби systemd змінюється, щоб systemd реєстрував будь-які нові внесені зміни.
Потім запустіть програму.
sudo systemctl start site
Перейдіть на сайт у своєму браузері ще раз, щоб переконатися, що все працює.
stop
- Повністю зупиняє програму.restart
- Зупиняє програму та запускає її знову під новим процесом.enable
- Вказує systemd запускати програму щоразу, коли ви запускаєте свій комп'ютер.status
- Показує інформацію про поточну запущену програму, таку як час роботи, стан програми тощо.Щоб скористатися будь-якою з цих функцій, виконайте наступне.
systemctl <function> site
Ми успішно налаштували програму Koa.js і дізналися, як повернути її проксі-сервер, а також керувати нею за допомогою systemd. Тепер ви готові розширити свою програму та побудувати на цьому прикладі. Якщо ви хочете дізнатися більше про Koa.js та інші речі, які ви можете зробити, відвідайте їхній веб-сайт , щоб отримати більше корисної інформації. На додаток до цього, якщо ви хочете дізнатися більше про диспетчер процесів systemd, прочитайте документацію до нього тут . Нарешті, якщо ви хочете дізнатися більше про зворотний проксі Apache, не соромтеся перевірити їх тут .
Використання іншої системи? Plesk — це власна панель керування веб-хостом, яка дозволяє користувачам адмініструвати свої персональні та/або клієнтські веб-сайти, бази даних
Вступ Lets Encrypt — це служба центру сертифікації, яка пропонує безкоштовні сертифікати TLS/SSL. Certbot спрощує процес встановлення,
Використання іншої системи? Що таке Tekkit Classic? Tekkit Classic — це модпак для гри, яку всі знають і люблять; Майнкрафт. Він містить деякі з вер
PHP та пов’язані з ним пакети є найбільш часто використовуваними компонентами під час розгортання веб-сервера. У цій статті ми дізнаємося, як налаштувати PHP 7.0 або PHP 7.1 o
Вступ Lighttpd — це форк Apache, який має набагато меншу ресурсомісткість. Він легкий, звідси його назва, і досить простий у використанні. Встановити
1. Virtualmin/Webmin Virtualmin — це потужна та гнучка панель керування веб-хостингом для систем Linux та UNIX на основі відомої веб-бази з відкритим вихідним кодом.
Yii — це PHP-фреймворк, який дозволяє розробляти програми швидше та легше. Установка Yii на Ubuntu проста, як ви дізнаєтеся
Screen — це програма, яка дозволяє багаторазово використовувати термінальні сеанси в одному вікні. Це дозволяє моделювати декілька вікон терміналу, де це ma
Вступ Logrotate — це утиліта для Linux, яка спрощує адміністрування файлів журналів. Зазвичай він запускається раз на день через завдання cron і керує базою журналів
Використання іншої системи? Apache Cassandra — це безкоштовна система керування базами даних NoSQL з відкритим вихідним кодом, яка розроблена для забезпечення масштабованості, високої
Використання іншої системи? Vanilla forum — це програма з відкритим вихідним кодом, написана на PHP. Це повністю настроюваний, простий у використанні та підтримує зовнішній вигляд
Використання іншої системи? Вступ Kanboard — це безкоштовна програма з відкритим вихідним кодом для управління проектами, яка призначена для полегшення та візуалізації
Використання іншої системи? Gitea — це альтернативна система контролю версій із відкритим вихідним кодом, яка працює на базі git. Gitea написана на Голанг і є
Використання іншої системи? Docker — це програма, яка дозволяє розгортати програми, які запускаються як контейнери. Це було написано в популярному програмі Go
Що таке Dirty Cow (CVE-2016-5195)? Уразливість Dirty Cow використовується через те, як Linux обробляє код. Це дозволяє непривілейованому користувачеві використовувати gai
Наявність лише одного користувача, який є root, може бути небезпечним. Тож давайте це виправимо. Vultr надає нам свободу робити з нашими користувачами та нашими серверами, що нам заманеться
Adminer — це легка альтернатива phpMyAdmin. Для порівняння, його загальний розмір пакета становить 400 КБ проти 4,2 МБ phpMyAdmin. На відміну від phpMyAdmin, який
У цьому посібнику ви дізнаєтеся, як налаштувати автентифікацію HTTP для веб-сервера Nginx, що працює на CentOS 7. Вимоги Щоб почати, вам знадобиться
У цьому посібнику ви навчитеся інсталювати програмне забезпечення NextCloud. Ми будемо використовувати Caddy для потреб нашого веб-сервера, оскільки це спрощує налаштування
Використання іншої системи? GoAccess — це аналізатор веб-журналів з відкритим вихідним кодом. Ви можете використовувати його для аналізу журналів у режимі реального часу в терміналі або
Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.
Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.
Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.
Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.
Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…
Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.
Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.
Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.
У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.
Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше