Инсталирайте Lets Encrypt SSL в приложението WordPress с едно щракване
Въведение Lets Encrypt е услуга на сертифициращ орган, която предлага безплатни TLS/SSL сертификати. Процесът на инсталиране е опростен от Certbot,
В този урок ще се научим как да настроим уеб приложение Koa.js за производство, използвайки Node.js. Също така ще свържем примерен домейн с обратен прокси, използвайки Apache, и ще научим как да го управляваме с подходящ мениджър на процеси. Без повече приказки, нека да започнем.
Node.js е бърза, междуплатформена JavaScript рамка, базирана на V8 двигателя на Chrome. Използва се както в настолни, така и в сървърни приложения и е известен със своята еднонишкова обработка на цикъл на събития. 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, не се колебайте да ги проверите тук .
Въведение Lets Encrypt е услуга на сертифициращ орган, която предлага безплатни TLS/SSL сертификати. Процесът на инсталиране е опростен от Certbot,
Използване на различна система? Ако закупите сървър на Debian, винаги трябва да имате най-новите корекции за сигурност и актуализации, независимо дали спите или не
PHP и свързаните с него пакети са най-често използваните компоненти при разгръщане на уеб сървър. В тази статия ще научим как да настроим PHP 7.0 или PHP 7.1 o
Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне
Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте
1. Virtualmin/Webmin Virtualmin е мощен и гъвкав контролен панел за уеб хостинг за Linux и UNIX системи, базиран на добре познатата уеб база с отворен код
Yii е PHP рамка, която ви позволява да разработвате приложения по-бързо и лесно. Инсталирането на Yii в Ubuntu е лесно, както ще научите точно l
Този урок обяснява как да настроите DNS сървър с помощта на Bind9 на Debian или Ubuntu. В цялата статия заменете your-domain-name.com съответно. При th
Въведение Logrotate е помощна програма за Linux, която опростява администрирането на лог файлове. Обикновено се изпълнява веднъж на ден чрез cron задание и управлява базата от регистрационни файлове
Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент
Използване на различна система? Red5 е медиен сървър с отворен код, внедрен в Java, който ви позволява да стартирате Flash многопотребителски приложения, като например предаване на живо
В тази статия ще видим как да компилирате и инсталирате основната линия на Nginx от официалните източници на Nginx с модула PageSpeed, който ви позволява да
Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока
Използване на различна система? Vanilla forum е приложение за форум с отворен код, написано на PHP. Той е напълно адаптивен, лесен за използване и поддържа външен
Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира
Използване на различна система? Въведение Kanboard е безплатна програма за управление на проекти с отворен код, която е предназначена да улеснява и визуализира
Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от Git. Gitea е написана на Голанг и е
Използване на различна система? Gitea е алтернатива с отворен код, самостоятелно хоствана система за контрол на версиите, задвижвана от git. Gitea е написана на Голанг и е
Въведение Lynis е безплатен инструмент за одит на системата с отворен код, който се използва от много системни администратори за проверка на целостта и заздравяване на техните системи. аз
Използване на различна система? Thelia е инструмент с отворен код за създаване на уебсайтове за е-бизнес и управление на онлайн съдържание, написано на PHP. Изходен код на Thelia i
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.
Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.
Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.
Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…
Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.
Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.
Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.
В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.
Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече