یک سرور Keystone.js را با استفاده از Nginx Reverse Proxy در اوبونتو 16.04 تنظیم کنید

در این آموزش ، سرور وب را با پروکسی معکوس تنظیم خواهیم کرد. CMS ما از Keystone.js استفاده خواهیم کرد ، یک چارچوب کاربردی شناخته شده وب که از Express.js مستقر است. پروکسی معکوس مورد استفاده ما Nginx است که یک پروکسی معکوس آزاد و منبع باز و همچنین سرور HTTP است. بانک اطلاعاتی که ما از آن استفاده خواهیم کرد MongoDB ، یک پایگاه داده اسناد NoSQL است. این امر به شما نیاز دارد که یک دامنه با تنظیم سوابق داشته باشید. اگر آن مجموعه را ندارید ، پیش بروید و از آن مراقبت کنید و به این آموزش برگردید.

نصب گره

ابتدا Node.js را نصب خواهیم کرد که یک مترجم Javascript بر اساس موتور Chrome V8 Javascript است.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential

نصب Nginx

بعد ، Nginx ، پروکسی معکوس خود را نصب خواهیم کرد.

sudo apt update
sudo apt install nginx

با این کار لیست های بسته به روزرسانی می شود و Nginx را نصب می کنید. پس از اتمام نصب ، پروژه گره خود را تنظیم خواهیم کرد.

اولیه سازی پروژه Keystone ما

پروژه گره ما را ایجاد کنید. برای انجام این کار ، به سادگی یک پوشه جدید ایجاد کنید.

mkdir website

سپس ، package.jsonپرونده خود را ایجاد خواهیم کرد . برای این کار ، به سادگی npm initدر ترمینال خود اجرا کنید ، فیلدها را پر کنید و yesبرای تأیید پاسخ دهید . پس از ایجاد package.jsonپرونده ، ماژول های گره زیر را نصب خواهیم کرد.

sudo npm install -g generator-keystone
sudo npm install -g yo

پس از اتمام بارگیری ، موارد زیر را اجرا کنید.

yo keystone

فیلدهای موردنیاز را پر کنید. آن را به شما برای درخواست project nameاز template engine، emailبرای کنترل پنل، و غیره. اگر نمی دانید چه چیزی را انتخاب کنید ، پیش فرض ها خوب خواهند بود. بعد از تنظیم تنظیمات کلید اصلی خود ، می توانیم تست کنیم که سرور ما با تایپ کردن node keystoneبرای شروع برنامه شما ، کار کند. به طور پیش فرض ، برنامه شما localhostدر درگاه اجرا می شود 3000. توجه داشته باشید که در صورت نصب MongoDB ، بلافاصله یک بانک اطلاعاتی در دسترس شما نخواهد بود. می توانید نحوه نصب آن را بعداً در آموزش بیاموزید.

در اینجا طرح اصلی دایرکتوری برای Keystone.js آورده شده است:

  • /lib - اینجاست که کتابخانه های سفارشی و کد دیگری را ذخیره می کنید.

  • /models- این جایی است که شما مدل های پایگاه داده برنامه خود را ذخیره می کنید. KeystoneJS از MongoDB به عنوان ارائه دهنده پایگاه داده استفاده می کند.

  • /public - اینجاست که پرونده های استاتیک شما (CSS ، JS ، تصاویر و غیره) ذخیره می شوند.

  • /routes/api - اینجاست که کنترلرهای API برنامه شما ذخیره می شود.

  • /routes.views - کنترلرهای مشاهده برنامه در اینجا ذخیره می شوند.

  • /templates - اینجاست که تمام فایلهای الگوی برنامه شما ذخیره می شود.

  • /updates - اینجاست که اسکریپت های مهاجرت شما ذخیره می شود.

  • package.json - این پرونده پیکربندی npm شماست که ژنراتور برای ما تولید می کند.

  • keystone.js - پرونده اصلی شروع ما ، این کار را هنگام راه اندازی وب سایت اجرا می کنیم.

اولیه سازی بانک اطلاعاتی ما

همانطور که قبلاً ذکر شد ، بانک اطلاعاتی ما که از آن استفاده خواهیم کرد MongoDB است که یک پایگاه داده معتبر NoSQL و مستند است. اگر قبلاً نصب MongoDB رخ داده است ، ممکن است از این بخش پرش کنید. اگر نه ، پس نحوه نصب آن در اوبونتو 16.04 آورده شده است.

کلید عمومی مورد استفاده برای بسته mongoDB را وارد کنید.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

پرونده لیست مورد استفاده برای نصب بسته را ایجاد کنید.

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

لیست های بسته خود را با استفاده از به روز کنید apt.

sudo apt update

در آخر ، MongoDB را نصب کنید.

sudo apt install mongodb-org -y

پس از پایان یافتن این نصب ، MongoDB را شروع کنید.

sudo service mongod start

این کار روند MongoDB را در درگاه شروع می کند 27017.

MongoDB در طول برنامه استفاده خواهد شد ، و از آن برای ذخیره اطلاعاتی که ما برای مدلهای خود استفاده می کنیم ، به عنوان مثال یک Userمدل استفاده می شود. Keystone از آن به عنوان پایگاه داده مورد نظر خود استفاده می کند ، و در این زمان شما نمی توانید از دیگر فروشندگان پایگاه داده استفاده کنید.

نصب PM2

اکنون زمان آن رسیده است تا PM2 (Manager Manager 2.) را نصب کنید. PM2 یک مدیر پروسه برای برنامه های Node.js است ، در قالب یک ماژول npm. این یک راه آسان برای شما برای مدیریت برنامه های خود و اجرای آنها در پس زمینه فراهم می کند. از آنجا که در NPM است ، تمام کاری که باید برای نصب آن انجام دهیم ، موارد زیر است.

sudo npm install pm2 -g

این به npm می گوید که آن را در سطح جهانی نصب کنید ، بنابراین می توانیم از آن در هر نقطه از سیستم خود استفاده کنیم.

اجرای / مدیریت برنامه در PM2

پیش از این ، برنامه وب خود را با آن اجرا کردیم node keystone. با PM2 ، کمی متفاوت است. اکنون برنامه گره خود را با موارد زیر اجرا می کنیم.

pm2 start keystone.js

این برنامه PM2 ما را به لیست فرآیندهای ما اضافه می کند ، و یک جعبه کوچک نمایش داده می شود ، بنابراین می توانید ببینید که در واقع بصورت آنلاین است. کادر مورد نظر idبرای روند خود را یادداشت کنید. این را نزدیک نگه دارید ، زیرا بعداً به این موارد اشاره خواهیم کرد.

برای دیدن گزارش های مربوط به برنامه خود

pm2 logs [id]

به عنوان مثال ، pm2 logs 0اگر این اولین برنامه PM2 شما است.

برای متوقف کردن برنامه وب خود در هر زمان.

pm2 stop [id]

برای حذف کامل برنامه خود

pm2 delete [id]

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

pm2 monit

با این کار برخی از اطلاعات اساسی مانند استفاده از RAM ، استفاده از CPU و بروزرسانی نمایش داده می شود.

یک ویژگی عالی که PM2 ارائه می دهد این است watching. در اصل ، تماشای زمانی است که PM2 به طور خودکار تغییرات در هر یک از پرونده های موجود در همان فهرست را با همان پرونده شروع شما تشخیص می دهد و به طور خودکار برنامه شما را دوباره راه اندازی می کند. برای فعال کردن آن ، برنامه خود را مجدداً راه اندازی مجدد کنید ، اما آنرا پرچم ساعت بگذرانید.

pm2 restart [id] --watch

برای غیرفعال کردن تماشای پس از فعال شدن ، کافی است دوباره همان فرمان را دوباره اجرا کنید و تماشای آن غیرفعال می شود.

در این آموزش ، تماشا را خاموش خواهیم کرد.

پروکسی معکوس خود را تنظیم کنید

اطمینان حاصل کنید که Nginx را نصب کرده اید. اگر به دلایلی چنین نیست ، مراحل فوق را رجوع کنید.

تنظیمات فایروال خود را تنظیم کنید. در اوبونتو ، ufwفایروال رسمی است. به طور پیش فرض ، اتصالات در پورت مسدود می شوند 80. ما باید برای Nginx استثنائی در پورت اضافه 80کنیم که برنامه وب ما در آن اجرا خواهد شد.

sudo ufw allow 'Nginx HTTP'

تأیید کنید که سرور Nginx شما در حال اجرا است.

systemctl status nginx

در زیر Activeبخش ، اگر می بینید active (running)، همه شما تنظیم شده اید. اگر اینطور نیست ، می توانید دوباره راه اندازی مجدد سرویس را امتحان کنید.

systemctl restart nginx

پرونده پیش فرض پیکربندی Nginx را حذف کنید.

sudo rm /etc/nginx/sites-available/default

یک مورد جدید ایجاد کنید و به راحتی آن را صدا کنید node.

sudo nano /etc/nginx/sites-available/node

موارد زیر را در پرونده قرار دهید و example.comدامنه وب سایت خود را جایگزین کنید.

listen 80;

server_name example.com;

    location / {

        proxy_set_header   X-Forwarded-For $remote_addr;

        proxy_set_header   Host $http_host;

        proxy_pass         "http://127.0.0.1:3000";
    }
}

توجه داشته باشید که proxy_passIP را نشان می دهد برنامه Keystone ما به صورت محلی در حال اجرا است که localhostدر پورت است 3000. listen 80بندری است که می خواهیم برنامه به آن هدایت شود که در این حالت پورت است 80.

سپس ، باید پیوندی Symlink یا نمادین را به پوشه ای بنامیم sites-enabled. تفاوت بین sites-enabledو sites-availableاین است که sites-enabledدر واقع توسط Nginx بارگذاری شده است.

sudo ln -s /etc/nginx/sites-available/node /etc/nginx/sites-enabled/node

اکنون پرونده پیکربندی sites-availableشما آماده استفاده است ، و از آن بارگیری می شود sites-enabled. برای استفاده از پیکربندی ، پس از اجرای آن ، به سادگی Nginx را مجدداً راه اندازی کنید.

sudo systemctl restart nginx

در آخر ، برنامه PM2 خود را مجدداً راه اندازی کنید

pm2 restart [id]

اکنون می توانید در یک مرورگر به دامنه خود بروید و Welcome to Keystoneصفحه ای را مشاهده می کنید که پنلی برای ورود به سیستم دارد.

اگر آن را مشاهده کردید ، با موفقیت یک سرور وب تولید Node.js را راه اندازی کرده اید. اگر اینگونه نباشد ، ممکن است شما یک قدم را نادرست انجام داده باشید ، و ممکن است بخواهید به عقب برگردید و هر مرحله را با دقت دنبال کنید.

با مراجعه به وب سایت آنها می توانید اطلاعات بیشتری در مورد Nginx کسب کنید .

امیدوارم از این آموزش لذت برده باشید و امیدوارم که این امر به شما کمک کرده باشد تا سرور وب خود را برای تولید در Vultr VPS خود تنظیم کنید.



Leave a Comment

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

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

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

نحوه نصب کاناپه CMS 2.0 بر روی یک VPS CentOS 7 LAMP

نحوه نصب کاناپه CMS 2.0 بر روی یک VPS CentOS 7 LAMP

با استفاده از یک سیستم متفاوت؟ Couch CMS یک سیستم مدیریت محتوای منبع ساده و انعطاف پذیر ، آزاد و منبع باز (CMS) است که به طراحان وب اجازه می دهد تا طراحی کنند.

نحوه نصب BlogoText CMS بر روی Debian 9 LAMP VPS

نحوه نصب BlogoText CMS بر روی Debian 9 LAMP VPS

با استفاده از یک سیستم متفاوت؟ BlogoText CMS یک سیستم مدیریت محتوا (CMS) ساده و سبک ، آزاد و متن باز است و موتور وبلاگ مینیمالیستی

نصب Bolt CMS در CentOS 7

نصب Bolt CMS در CentOS 7

Bolt یک CMS منبع باز است که به زبان PHP نوشته شده است. کد منبع Bolts در GitHub میزبانی شده است. این راهنما نحوه نصب Bolt CMS را در CentOS 7 Vult تازه نشان می دهد

نحوه نصب PyroCMS در اوبونتو 16.04

نحوه نصب PyroCMS در اوبونتو 16.04

با استفاده از یک سیستم متفاوت؟ PyroCMS یک CMS منبع باز است که به زبان PHP نوشته شده است. کد منبع PyroCMS در GitHub میزبانی شده است. در این راهنما به خوبی از طریق Entir قدم بردارید

نحوه نصب Backdrop CMS 1.8.0 در Debian 9 LAMP VPS

نحوه نصب Backdrop CMS 1.8.0 در Debian 9 LAMP VPS

با استفاده از یک سیستم متفاوت؟ Backdrop CMS 1.8.0 یک سیستم مدیریت محتوا منبع باز و آزاد و متناسب با تلفن همراه ، رایگان و آزاد است که به ما اجازه می دهد

نحوه نصب Pagekit 1.0 CMS بر روی Debian 9 LAMP VPS

نحوه نصب Pagekit 1.0 CMS بر روی Debian 9 LAMP VPS

با استفاده از یک سیستم متفاوت؟ Pagekit 1.0 CMS یک سیستم زیبا و مدولار زیبا ، مدولار ، قابل تمدید و سبک ، آزاد و منبع باز منبع آزاد (CMS) با

نحوه نصب Anchor CMS در FreeBSD 11 FAMP VPS

نحوه نصب Anchor CMS در FreeBSD 11 FAMP VPS

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

نحوه نصب CMS اکتبر 1.0 بر روی یک Debian 9 LAMP VPS

نحوه نصب CMS اکتبر 1.0 بر روی یک Debian 9 LAMP VPS

با استفاده از یک سیستم متفاوت؟ اکتبر 1.0 CMS یک سیستم مدیریت محتوا (CMS) ساده و قابل اعتماد ، رایگان و منبع باز است که در چارچوب Laravel ساخته شده است

نحوه نصب MODX CMS و Nginx در CentOS 7

نحوه نصب MODX CMS و Nginx در CentOS 7

MODX یک سیستم مدیریت محتوای آزاد و منبع باز است که به زبان PHP نوشته شده است. از MySQL یا MariaDB برای ذخیره پایگاه داده خود استفاده می کند. MODX برای تجارت من طراحی شده است

نحوه نصب Subrion 4.1 CMS بر روی یک VPS CentOS 7 LAMP

نحوه نصب Subrion 4.1 CMS بر روی یک VPS CentOS 7 LAMP

با استفاده از یک سیستم متفاوت؟ Subrion 4.1 CMS یک سیستم مدیریت محتوای متن باز (CMS) قدرتمند و قابل انعطاف است که یک کانتینر بصری و واضح را به ارمغان می آورد.

نحوه نصب WonderCMS در FreeBSD 12

نحوه نصب WonderCMS در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ WonderCMS یک فایل CMS با منبع آزاد ، سریع و کوچک است که به زبان PHP نوشته شده است. کد منبع WonderCMS در Github میزبانی شده است. این راهنما است

نحوه نصب Pagekit 1.0 CMS در FreeBSD 11 FAMP VPS

نحوه نصب Pagekit 1.0 CMS در FreeBSD 11 FAMP VPS

با استفاده از یک سیستم متفاوت؟ Pagekit 1.0 CMS یک سیستم زیبا و مدولار زیبا ، مدولار ، قابل تمدید و سبک ، آزاد و منبع باز منبع آزاد (CMS) با

نحوه نصب Redaxscript 3.2 CMS بر روی Debian 9 LAMP VPS

نحوه نصب Redaxscript 3.2 CMS بر روی Debian 9 LAMP VPS

با استفاده از یک سیستم متفاوت؟ Redaxscript 3.2 CMS یک سیستم مدرن و فوق العاده سبک ، رایگان و منبع باز منبع آزاد (CMS) با موشک-fas است

گروه های نرم افزاری Tiki Wiki CMS را در Ubuntu 18.04 LTS نصب کنید

گروه های نرم افزاری Tiki Wiki CMS را در Ubuntu 18.04 LTS نصب کنید

با استفاده از یک سیستم متفاوت؟ مقدمه Tiki Wiki CMS Groupware ، همچنین با عنوان Tiki شناخته می شود ، یک سیستم مدیریت محتوای ویکی آزاد و منبع باز است. ویژگی Tikis

نحوه نصب Anchor CMS در Ubuntu 16.04 LAMP VPS

نحوه نصب Anchor CMS در Ubuntu 16.04 LAMP VPS

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

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

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

با استفاده از یک سیستم متفاوت؟ Subrion 4.1 CMS یک سیستم مدیریت محتوای متن باز (CMS) قدرتمند و قابل انعطاف است که یک کانتینر بصری و واضح را به ارمغان می آورد.

نحوه نصب BoltWire در اوبونتو 18.04

نحوه نصب BoltWire در اوبونتو 18.04

با استفاده از یک سیستم متفاوت؟ مقدمه BoltWire یک سیستم مدیریت محتوای رایگان و سبک است که به زبان پی اچ پی نوشته شده است. در مقایسه با بسیاری دیگر از مدیران محتوا

نحوه نصب Anchor CMS بر روی Debian 9 LAMP VPS

نحوه نصب Anchor CMS بر روی Debian 9 LAMP VPS

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

نحوه نصب BigTree CMS 4.2 در CentOS 7 LAMP VPS

نحوه نصب BigTree CMS 4.2 در CentOS 7 LAMP VPS

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

نحوه نصب بستر سبد خرید 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 است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد