نحوه نصب یک برنامه گره Koa.js در اوبونتو 16.04 LTS

در این آموزش می آموزیم که چگونه یک برنامه وب Koa.js را برای تولید و با استفاده از Node.js. تنظیم کنیم. ما همچنین با یک پروکسی معکوس ، از Apache استفاده می کنیم و یک دامنه نمونه را پیوند می دهیم و می آموزیم که چگونه آن را با یک مدیر فرایند مناسب مدیریت کنید. بدون تبلیغ بیشتر ، شروع کنیم.

شرح مختصر Node.js ، Koa.js و Apache

Node.js یک چارچوب سریع و متقاطع جاوا اسکریپت است که مبتنی بر موتور 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 مانند وعده ها ساخته شده است.

Apache یک سرور وب منبع آزاد است که به عنوان یک نقطه شروع بسیار اساسی برای سرورهای وب مورد استفاده قرار می گیرد. در این آموزش از Apache به عنوان یک پروکسی معکوس استفاده خواهیم کرد که به ما امکان می دهد تا برنامه خود را به یک دامنه نمونه پیوند دهیم. اگر دامنه ندارید ، این آموزش همچنان برای شما کار خواهد کرد ، تنها تفاوت این است که وب سایت به جای یک دامنه بر روی IP VPS شما اجرا می شود.

تنظیم Node.js

مانند هر چارچوب 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

اکنون که دایرکتوری خود را تنظیم کردیم ، می توانیم 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

اکنون که می دانیم وب سایت ما کاربردی است ، می توانیم به نصب 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به عنوان درگاه IP ProxyPassو ProxyPassReverseIP استفاده می کنیم. از آنجا که همان پورت است که ما برنامه Koa.js خود را اجرا می کنیم ، ضروری است که پورت صحیح را وارد کنیم.

پس از ایجاد تغییرات ، ما نیاز به راه اندازی مجدد Apache و راه اندازی مجدد برنامه Koa.js داریم.

sudo systemctl restart apache2

این کار باعث می شود که هنگام تنظیم برنامه Koa.js ، پرونده پیکربندی ما فعال و آماده کار باشد. پس از راه اندازی مجدد Apache ، دوباره به فهرست دایرکتوری سایت خود بروید و برنامه Koa.js را مانند قبل انجام دهید. از مرورگر وب خود حرکت کنید http://yourdomain، یا http://yourip:، و "Hello World" را مشاهده خواهید کرد.

مدیریت برنامه ما با systemd

اکنون که ما اصول ایجاد نمونه ای از برنامه Koa.js را پوشش داده ایم ، می فهمیم که در یک محیط تولید ، شروع برنامه به همان شکلی که اکنون هستیم غیر عملی است. مدیر فرایند قطعاً یک نیاز است. اینجاست که systemd وارد بازی می شود. به زبان ساده ، systemd از نرم افزاری تشکیل شده است که بلوک های ساختمانی را برای سیستم لینوکس فراهم می کند. مشابه "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 - این به سیستم اطلاع می دهد تا قبل از شروع برنامه ما صبر کند تا رابط شبکه آماده شود.
  • Environment- در اینجا می توانیم متغیرهای محیط را برای برنامه خود مشخص کنیم. درگاه Node.js یکی از آنهاست.
  • Type - این سیستم را به سیستم اطلاع می دهد که برنامه ما فقط می تواند راه اندازی شود ، بدون آنکه از امتیازات کاربران استفاده کند.
  • User- این به systemd می گوید که ما می خواهیم برنامه را در زیر حساب کاربری خود اجرا کنیم ، که توصیه می شود. اجرای برنامه های کاربردی به عنوان کاربر اصلی می تواند منجر به سازش های امنیتی زیادی شود.
  • ExecStart - اساساً فرمانی که systemd برای شروع برنامه ما اجرا می کند ، مشابه آنچه قبلاً آن را به صورت دستی شروع کرده ایم
  • Restart- به سیستم می گوید که در چه شرایطی مجدداً برنامه خود را راه اندازی کنید. در این حالت ، در صورت بروز خطا می خواهیم وب سایت خود را مجدداً راه اندازی کنیم.

سرویس systemd را شروع کنید

اکنون آماده هستیم تا سرویس سیستم خود را شروع کنیم.

sudo systemctl daemon-reload

این کار ضروری است هر زمان که یک فایل سرویس سیستمی تغییر کند تا سیستم از سیستم تغییرات جدیدی را ایجاد کند.

سپس ، درخواست خود را شروع کنید.

sudo systemctl start site

یکبار دیگر به سایت در مرورگر خود بروید تا تأیید کنید که همه چیز کار می کند.

توابع مدیریت کلیدی سیستم

  • stop - برنامه را کاملاً متوقف کنید.
  • restart - برنامه را متوقف کرده و دوباره تحت یک فرآیند جدید شروع می کند.
  • enable - به systemd می گوید که هر زمان کامپیوتر خود را راه اندازی کنید ، برنامه را شروع کند.
  • status - اطلاعات مربوط به برنامه در حال اجرا را نشان می دهد ، از جمله به موقع ، حالت برنامه و موارد دیگر.

برای استفاده از هر یک از این توابع ، موارد زیر را اجرا کنید.

systemctl <function> site

نتیجه

ما با موفقیت یک برنامه Koa.js را راه اندازی کردیم و یاد گرفتیم که چگونه پروکسی را برگردانید ، و همچنین آن را با systemd مدیریت کنید. اکنون شما آماده هستید تا برنام�� خود را گسترش داده و بر اساس این مثال بنا کنید. اگر می خواهید در مورد Koa.js و کارهای دیگری که می توانید با آنها اطلاعات بیشتری کسب کنید ، برای اطلاعات مفید تر به وب سایت آنها مراجعه کنید . علاوه بر آن ، اگر می خواهید در مورد مدیر فرآیند systemd اطلاعات بیشتری کسب کنید ، مستندات مربوط به آن را در اینجا بخوانید . سرانجام ، اگر می خواهید در مورد پروکسی معکوس آپاچی اطلاعات بیشتری کسب کنید ، در صورت تمایل آنها را از اینجا بررسی کنید .



Leave a Comment

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد