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
Bu eğitimde, Node.js kullanarak üretim için bir Koa.js web uygulamasını nasıl kuracağımızı öğreneceğiz. Ayrıca Apache'yi kullanarak örnek bir etki alanını ters proxy ile bağlayacağız ve uygun bir süreç yöneticisiyle nasıl yöneteceğimizi öğreneceğiz. Daha fazla uzatmadan başlayalım.
Node.js, Chrome'un V8 motorunu temel alan hızlı, platformlar arası bir JavaScript çerçevesidir. Hem masaüstü hem de sunucu uygulamalarında kullanılır ve tek iş parçacıklı olay döngü işlemleriyle ünlüdür. Node.js, yarım milyondan fazla paketi barındıran Düğüm Paketi Yöneticisi (NPM) adı verilen bir paket kayıt defterine sahiptir. NPM paketleri (veya modülleri), Node.js uygulamanızda yararlı olabilecek topluluk güdümlü kod oldukları için Node.js'nin temel omurgasıdır. Koa.js uygulamamızda, Node.js işlevinin temel parçasıdır.
Koa.js, Node.js platformunda oluşturulmuş minimalist bir web çerçevesidir. Popüler Express.js çerçevesinin arkasındaki aynı ekip tarafından yapılan hedef, orta katman yazılımını çekirdeğinden hariç tutarak zaten minimalist Express.js çerçevesini en aza indirmek. Koa.js'nin önemli bir özelliği, geri arama olmamasıdır. Koa.js, ES6 tabanlı jeneratörler ve Promises gibi ES6 özellikleri üzerine kurulmuştur.
Apache, web sunucuları için çok temel bir başlangıç noktası olarak kullanılan popüler bir açık kaynaklı web sunucusudur. Bu derste, Apache'yi ters bir proxy olarak kullanacağız, bu da uygulamamızı örnek bir etki alanına bağlamamıza izin verecektir. Bir alan adınız yoksa, bu eğitim yine de sizin için çalışır; tek fark web sitesinin bir alan adı yerine VPS IP'nizde çalışmasıdır.
Tüm Node.js çerçevelerinde olduğu gibi, VPS'nize Node.js yüklemeniz gerekir. Bu öğretici adına, sisteminizde zaten Node.js yüklü olduğunu varsayacağım. Değilse, sadece talimatları takip edebilirsiniz burada .
Uygulamamızın temel dosyalarını içeren bir klasör oluşturmamız gerekecek.
mkdir site
site
Dizin için istediğiniz başka bir adla değiştirmekten çekinmeyin . Ardından, Node.js paket dosyamızı başlatmamız gerekecek. Az önce oluşturduğunuz dizine geçin ve çalıştırın npm init
ve komut istemlerini tamamlayın. Sonunda, şöyle bir şey olmalı:
{
"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"
}
Şimdi dizinimiz kuruldu, Koa.js'yi yüklemeye devam edebiliriz. Geçerli çalışma dizinine /site
aşağıdakini yazın.
npm install koa
Bu, Koa.js modülünü NPM'den indirecek ve ileride kullanmak üzere proje dizinimize kuracaktır. Ardından, uygulama kodumuzu tutacak örnek uygulama dosyamızı oluşturacağız. Bunu yapmak için bir index.js
dosya oluşturun.
nano index.js
Dosyanın içine girdikten sonra örnek bir uygulama oluşturun.
const Koa = require('koa');
const app = new Koa();
app.use(async ctx => {
ctx.body = 'Hello World';
});
app.listen(3000);
console.log('Website is live!')
Dosyayı kaydedip kapatın. CTRL+ X.
Uygulamamızın düzgün çalıştığından emin olmak isteyeceğiz. Başlamak için çalıştırın node index.js
ve Website is live
konsolda göreceksiniz .
Web sitemizin işlevsel olduğunu bildiğimize göre, Apache'yi ve bağımlılıklarını yüklemeye devam edebiliriz.
sudo apt install -y libapache2-mod-proxy-html libxml2-dev
Apache'de bulunan ters proxy özelliğini kullanmak için gerekli modülleri etkinleştirmemiz gerekecek.
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html
Bu modüllerden bazıları zaten etkinleştirilmiş olabilir, ancak bunları iki kez kontrol etmek her zaman iyidir.
Şimdi Apache için varsayılan yapılandırma dosyasını düzenlememiz gerekiyor.
sudo nano /etc/apache2/sites-enabled/000-default.conf
Burada, uygulamamız için bir blok eklememiz gerekecek.
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://0.0.0.0:3000/
ProxyPassReverse / http://0.0.0.0:3000
ServerName localhost
</VirtualHost>
Dosyayı kaydedin, CTRL+ X.
3000
Portu bizim ProxyPass
ve ProxyPassReverse
IP için port olarak kullandığımızı fark edebilirsiniz . Koa.js uygulamamızı çalıştırdığımızla aynı bağlantı noktası olduğundan, doğru bağlantı noktasını girmemiz zorunludur.
Değişiklikler yapıldıktan sonra Apache'yi yeniden başlatmamız ve Koa.js uygulamamızı yeniden başlatmamız gerekecek.
sudo systemctl restart apache2
Bu, Koa.js uygulamamızı başlattığımızda yapılandırma dosyamızın etkin ve çalışmaya hazır olmasını sağlayacaktır. Apache yeniden başlatıldıktan sonra, site dizininize geri dönün ve daha önce yaptığımız gibi Koa.js uygulamasını başlatın. Web tarayıcınızdan http://yourdomain
veya öğesine gidin http://yourip:
ve "Merhaba Dünya" yı göreceksiniz.
Örnek bir Koa.js uygulaması oluşturmanın temellerini ele aldığımıza göre, bir üretim ortamında uygulamayı şu anda başlatmanın pratik olmadığını anlıyoruz. Süreç yöneticisi kesinlikle bir gerekliliktir. Burada systemd devreye giriyor. Basit bir ifadeyle, systemd, bir Linux sistemi için yapı taşları sağlayan yazılımdan oluşur. "İnit" e benzer şekilde, sistem başlatıldıktan sonra kullanıcı süreçlerini yönetmek için bir sistem sağlar. Uygulamamız durumunda systemd, sistem yeniden başlatıldıktan sonra sistem çalışma süresini kesintiye uğratan bir olay olması durumunda otomatik olarak web sitemizi başlatmamızı sağlar. Ayrıca, uygulamamızı yönetirken kullanışlı olabilecek bir dizi araç sağlar. En iyi bölüm, Ubuntu 16.04 LTS'de yerleşik olması, bu nedenle başka bir yazılım yüklememiz gerekmiyor.
Uygulamamızı başlatmak için ihtiyacımız olan her şey adlı bir dosyada bulunacaktır service
. Uygulamamızın adı, dizini, ortamı ve daha fazlası gibi ayrıntıları içerir. Sistem dosyamızı oluşturmak için bir metin düzenleyici açın.
sudo nano /lib/systemd/system/site.service
Dosyayı bu şekilde düzenleyin ve kaydedin.
[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
Sunucunuzun kullanıcı adıyla değiştirin . İşte önemli alanların kısa bir açıklaması:
After
- Bu, sistemd uygulamamıza başlamadan önce ağ arayüzü hazır olana kadar beklemesini bildirir.Environment
- Burada uygulamamız için ortam değişkenlerini belirleyebiliriz. Node.js portumuz bunlardan biri.Type
- Bu, systemd'ye kullanıcı ayrıcalıklarını ve benzerlerini sormadan uygulamamızın yeni başlatılabileceğini bildirir.User
- Bu, systemd'ye uygulamayı kullanıcı hesabımız altında çalıştırmak istediğimizi bildirir. Uygulamaları kök kullanıcı olarak çalıştırmak birçok güvenlikten ödün vermenize neden olabilir.ExecStart
- Esasen, daha önce manuel olarak başlattığımız gibi, sistemimizin uygulamamızı başlatmak için çalışacağı komut.Restart
- Systemd'e hangi koşullar altında uygulamamızı yeniden başlatacağını söyler. Bu durumda, bir hata durumunda web sitemizin yeniden başlatılmasını istiyoruz.Şimdi systemd servisimizi başlatmaya hazırız.
sudo systemctl daemon-reload
Bu, systemd'nin yapılan yeni değişiklikleri kaydetmesi için bir systemd hizmet dosyası değiştiğinde gereklidir.
Ardından, uygulamanızı başlatın.
sudo systemctl start site
Her şeyin çalıştığını doğrulamak için tarayıcınızdaki siteye bir kez daha gidin.
stop
- Uygulamayı tamamen durdurur.restart
- Uygulamayı durdurur ve yeni bir işlem altında yeniden başlatır.enable
- Systemd'e bilgisayarınızı her başlattığınızda uygulamayı başlatmasını söyler.status
- Çalışma süresi, uygulama durumu ve daha fazlası gibi şu anda çalışan uygulama hakkında bilgi gösterir.Bu işlevlerden herhangi birini kullanmak için aşağıdakileri çalıştırın.
systemctl <function> site
Bir Koa.js uygulamasını başarıyla kurduk ve uygulamanın nasıl tersine çevrileceğini ve systemd ile nasıl yönetileceğini öğrendik. Artık uygulamanızı genişletmeye ve bu örneği temel almaya hazırsınız. Koa.js hakkında daha fazla bilgi edinmek ve yapabileceğiniz diğer şeyleri öğrenmek isterseniz, daha yararlı bilgiler için web sitelerini ziyaret edin . Buna ek olarak, systemd'nin işlem yöneticisi hakkında daha fazla bilgi edinmek istiyorsanız, bunun için belgeleri burada okuyun . Son olarak, Apache'nin ters proxy'si hakkında daha fazla bilgi edinmek isterseniz, onları buradan kontrol etmekten çekinmeyin .
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
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
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:
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)
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,
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
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
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
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
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
Ö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
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.
Ç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
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
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
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
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)
Ö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
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
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 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 sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.
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.
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
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.
Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.
Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.
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, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?