Ubuntu 16.04te Node.js Kullanarak Hapi.js Web Uygulaması Oluşturma

Hapi.js, Node.js ekosisteminde web uygulamaları oluşturmak için tasarlanmış, zengin, sağlam ve güçlü bir Node.js çerçevesidir. Basit tasarımı, kullanmaya başlamayı kolaylaştırır. Hapi, ES6 vaatleri gibi en son JavaScript ES6 özelliklerinin çoğunu kullanır. Daha önce Express'i kullanmış olanlarınız için, Hapi yeni bir şey denemenize ve en son JavaScript özelliklerinin tümünü deneyimlemenize izin verir.

Bu derste, hedefimiz Ubuntu 16.04 LTS'de Vultr VPS'de barındırılan temel bir Hapi.js web sayfası oluşturmak olacak. Siteleri için bir alan adı olanlar için, alanımızı web sitemize bağlamak için ters bir proxy kullanacağız. Son olarak, bir süreç yöneticisi ile nasıl yönetileceğini öğreneceğiz. Şimdi bunu elimizden aldık, başlayalım.

Node.js Yükleniyor

Node.js yüklememiz gerekecek. Ubuntu 16.04 LTS'de bunu yapmak için şu talimatları izleyin.

Depo Ekleme

Node.js'nin en son LTS sürümünü içeren NodeSource APT deposunu eklememiz gerekecek.

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

Depoyu kaynaklar listemize eklemek için kullanacağımız bir komut dosyası indiriyoruz ve NodeSource deposundan Node.js'yi yüklüyoruz.

Derleme Araçlarını Yükleme

Node.js'nin kendisini kurmanın yanı sıra, kurmamız gerekebilecek herhangi bir modülün oluşturulmasına yardımcı olacak bazı gerekli oluşturma araçlarını da yüklememiz gerekecek.

sudo apt-get install -y build-essential

Bu, derleme araçlarını depodan indirir ve yükler.

Uygulama dizinini ayarlama

Uygulama için kullanacağımız, yapılandırma dosyaları ve başlangıç ​​komut dosyaları gibi uygulamamızın tüm verilerini içerecek bir klasör belirlemek iyi bir uygulamadır. İstediğiniz her şeyi adlandırarak bir klasör oluşturun. Bu öğretici adına, adını verdiğinizi varsayacağım site.

mkdir site

Klasörü oluşturduktan sonra artık klasöre geçebiliriz. Az önce oluşturduğunuz dizinde olduğunuzdan emin olun, NPM paket sihirbazını başlatın.

npm init

Uygulama adınız, başlangıç ​​dosyanız, lisans vb.Gibi birkaç farklı şey girmenizi isteyecektir. Uygulamanızın adı gibi daha belirgin alanlar dışında, varsayılan olarak bırakabileceğiniz alanların çoğu. Sonunda, şöyle görünecek:

{
  "name": "site",
  "version": "1.0.0",
  "description": "Hapi.js site",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "rich",
  "license": "MIT"
}

Sonuçtan memnun kaldığınızda ENTER, dosyayı kaydetmek için tıklayın .

Hapi.js'yi Yükleme

Dizininiz başarıyla oluşturulduğuna göre, şimdi Hapi.js'yi yüklemeye devam edebiliriz. Daha önce de belirtildiği gibi, projemiz için Hapi.js'yi ve bağımlılıklarını indirmek için NPM'yi kullanacağız. Proje dizininde aşağıdakileri çalıştırın.

npm install hapi.js

Bu, Hapi.js'yi NPM'den indirir ve proje dizinimize yükler. Aynı çalışmada, bizim kolaylığımız için Hapi.js'nin güvendiği bağımlılıklar da indirilir.

Örnek uygulamamızı kurma

Şimdi temel Hapi.js uygulama dosyamızı kurmanın zamanı geldi. Bu, uygulama için tüm kodumuzu içerecektir. Yolun ilerisinde, uygulama kodumuzu genişletebilir ve uygun gördüğümüz şekilde daha fazla şey ekleyebiliriz.

Ardından, başlangıç ​​dosyamızı oluşturacağız. Dosyanın tam olarak nasıl adlandırılacağını belirlemek mainiçin package.jsondosyanızın bölümüne bakın . Varsayılan adlandırma şemasını kullandığımdan, dosyamız çağrılacak index.js.

nano index.js

Nano metin düzenleyicisine girdikten sonra, temel uygulama kodunuzu oluşturun.

const Hapi=require('hapi');
const server=Hapi.server({
    host:'localhost',
    port: 3000
});

server.route({
    method:'GET',
    path:'/',
    handler:((request,h)) => {
        return 'Sample Hapi.js Application';
    }
});
async function start() {

    try {
        await server.start();
    } catch (err) {
        console.log(err);
        process.exit(1);
    }
    console.log(`Our server is running! ${server.info.uri}`);
};

start();

İlk olarak, Hapi modülünü içe aktarıyoruz. Ardından, sunucuyu çalıştırmak istediğimiz ana bilgisayarı içeren sunucu 3000kurucumuzu ve bu öğretici için olan bağlantı noktasını başlatırız . Ardından, bir kişi siteyi her ziyaret ettiğinde basit bir mesajla karşılanacağını belirten temel bir yönlendirici kurduk. Her şeyden önce, sunucumuzu başlatmak için sunucumuzun çalıştığı konsola giriş yapacak bir zaman uyumsuz fonksiyonumuz var. İşiniz bittiğinde dosyayı kaydedin ve kapatın ( CTRL+ X)

Artık ana dosyamız ayarlandığına göre uygulamamızı başlatmaya hazırız.

node index.js

Our server is running!Konsolda " " görürseniz , sunucu başarıyla başlatıldı.

Nginx'i yükle

Nginx varsayılan Ubuntu depolarında bulunduğundan, kurulum kolaydır. Paket listelerinizi güncelleyin ve yükleyin.

sudo apt update
sudo apt install nginx -y 

Paket listelerini yeniledikten sonra, Nginx ve bağımlılıkları yüklenecek.

Nginx'i Yapılandır

Nginx'in uygulamamızı proxy olarak tersine çevirebilmesi için bir yapılandırma dosyası oluşturmamız gerekecek. Bu yapılandırma dosyası, Nginx'in ters proxy için kullanacağı uygulamamız hakkında bilgi içerir.

Nginx'in oluşturduğu varsayılan yapılandırmayı silin, çünkü daha sonra kendi ayarlarımızla değiştireceğiz.

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

sites-availableKlasörde yeni bir dosya oluşturun . Adlandırma gelince site, basitlik için sadık kalabiliriz .

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

Dosyaya aşağıdakileri yapıştırın ve kaydedin.

server {
    listen 80;
    location / {
          proxy_set_header X-Real-IP 
          $remote_addr;
          proxy_set_header 
          X-Forwarded-For 
          $proxy_add_x_forwarded_for;
          proxy_set_header Host 
          $http_host;
          proxy_set_header 
        X-NginX-Proxy true; proxy_pass 
       http://127.0.0.1:3000/;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade 
     $http_upgrade;
    proxy_set_header Connection 
    "upgrade";
    proxy_redirect off;
    proxy_set_header 
   X-Forwarded-Proto $scheme;
    }
}

Bu dosyada, Nginx'e bağlantı noktasını dinlemesini söylüyoruz 80. Proxy geçişini Hapi uygulamamızla aynı bağlantı noktası olan localhostadrese ve bağlantı noktasına da ayarlıyoruz 3000.

Artık uygulama dizininize geri dönebilir ve siteyi başlatabilirsiniz. Site başladıktan sonra, http://yourdomain.comveya öğesine gidin http://youripve " Hello World" metnini göreceksiniz .

PM2'yi yükle

PM2, NPM deposunda bulunabilir ve global olarak her yerden erişilebilir şekilde kurabilirsiniz.

sudo npm install pm2 -g

Sondaki -gbayrak, modülü genel modüller klasörüne kurmak istediğimizi gösterir, bu da onu proje dizinimizin dışında kullanmamıza izin verir. Bu, projemizin normal bir sistem uygulaması gibi davranması için kullanılır.

Uygulamamızı PM2 ile başlatma

PM2'yi yükledikten sonra proje dizininize geri dönün. Uygulamamızı başlatmak için sözdizimi şimdi biraz farklı olacaktır. PM2 ile böyle yapacağız.

pm2 start index.js --name site

Temel olarak uygulamamız için bir profil oluşturan PM2 start işlevini adıyla kullanıyoruz site. Bu komutu çalıştırdıktan sonra web siteniz başlayacak, ancak günlüklerin gösterilmeyeceğini göreceksiniz. Çünkü günlükleri şimdi görüntüleme şeklimiz farklıdır.

pm2 logs site

Bağımsız --linesdeğişken ile görmek istediğiniz günlük satırı satırlarını bile belirtebilirsiniz .

Sonuç

Bir Hapi.js web sunucusunu başarıyla kurdunuz, Nginx ile tersine proxy uyguladınız ve PM2 ile nasıl daha iyi yöneteceğinizi öğrendiniz. Bu bilgi ile, bu öğreticiyi daha da genişletebilir ve çok gelişmiş bir Hapi.js uygulaması yapabilirsiniz. Hapi'nin olanakları hakkında daha fazla bilgi edinmek için resmi belgelerini ziyaret edin . PM2'nin olanakları hakkında daha fazla bilgi edinmek istiyorsanız, hızlı başlangıç ​​kılavuzuna bakın .



Leave a Comment

CentOS 7de Tavşan Kümesini Kümeleme

CentOS 7de Tavşan Kümesini Kümeleme

RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir

Debianda NFS Paylaşımı Ayarla

Debianda NFS Paylaşımı Ayarla

NFS, bilgisayarların bilgisayar ağı üzerindeki dosyalara erişmesine izin veren ağ tabanlı bir dosya sistemidir. Bu kılavuz, klasörleri NF üzerinden nasıl açığa çıkarabileceğinizi açıklar

GitBucket Ubuntu 16.04 Kurulumu

GitBucket Ubuntu 16.04 Kurulumu

Bu kılavuz, Ubuntu 16.04 çalıştıran bir Vultr örneği için GitBucketin temel kurulumunu ve kurulumunu kapsar ve komutları şu şekilde yürüttüğünüzü varsayar:

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Directus 6.4 CMS, geliştirici sağlayan güçlü ve esnek, ücretsiz ve açık kaynaklı Başsız İçerik Yönetim Sistemidir (CMS)

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Mattermost, Slack SAAS mesajlaşma servisine açık kaynaklı, kendi kendine barındırılan bir alternatiftir. Başka bir deyişle, Mattermost ile,

Linuxta TeamTalk Sunucusu Kurma

Linuxta TeamTalk Sunucusu Kurma

TeamTalk, kullanıcıların yüksek kaliteli sesli / görüntülü konuşmalara, metin sohbetine, dosya aktarımına ve ekranları paylaşmasına olanak tanıyan bir konferans sistemidir. Ben

Pagekit CMSyi CentOS 7ye Yükleme

Pagekit CMSyi CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Vultr, yeni bir örnek oluşturduktan sonra SSH anahtarlarını önceden yüklemenizi sağlayan bir özellik sağlar. Bu, sunucu kök kullanıcısına erişmenizi sağlar, ancak

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Farklı Bir Sistem mi Kullanıyorsunuz? Diaspora gizliliğe duyarlı, açık kaynaklı bir sosyal ağdır. Bu derste, bir Diaspora posının nasıl kurulacağını ve yapılandırılacağını öğreneceksiniz

Debian 9 Üzerinde Yakıt CMS Kurulumu

Debian 9 Üzerinde Yakıt CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Fuel CMS, CodeIgniter tabanlı bir içerik yönetim sistemidir. Kaynak kodu GitHubda barındırılmaktadır. Bu kılavuz size

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların önüne # ve bir

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Snipe-IT, BT varlık yönetimi için ücretsiz ve açık kaynaklı bir web uygulamasıdır. Laravel 5.2 çerçevesi ve kullanımı üzerine yazılmıştır.

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

Çok Güvenli FTP arka plan programı, ya da sadece vsFTPd, özelleştirme yeteneği olan hafif bir yazılım parçasıdır. Bu derste bir müttefikimiz olacak

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Ranger, VI anahtar bağlamaları olan komut satırı tabanlı bir dosya yöneticisidir. Dizin hiyerarşisi manzaralı minimalist ve hoş bir curses arayüzü sağlar

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Farklı Bir Sistem mi Kullanıyorsunuz? Brotli, GZIPden daha iyi bir sıkıştırma oranına sahip yeni bir sıkıştırma yöntemidir. Kaynak kodu bu Githuda herkese açık olarak barındırılıyor

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

Belirli durumlarda, Sistem Yöneticisinin bir kullanıcı hesabı oluşturması ve yalnızca kendi dosyalarını sFTP yoluyla yönetmek için erişimini kısıtlaması gerekebilir, ancak b

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Omeka Classic 2.4 CMS, digita paylaşımı için ücretsiz ve açık kaynaklı bir dijital yayıncılık platformu ve İçerik Yönetim Sistemidir (CMS)

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların başına # işareti gelir. th

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

SSH üzerinden kök girişine izin vermek, teknoloji endüstrisinde genellikle zayıf bir güvenlik uygulaması olarak kabul edilir. Bunun yerine, hassas yönetim gerçekleştirebilirsiniz

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? RabbitMQ, Erlang programlama dilinde yazılmış, yaygın olarak kullanılan açık kaynaklı bir mesaj aracısıdır. Mesaj odaklı bir ara katman yazılımı olarak

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?