NGINX – Reverse Proxy – Node.js Örnek Uygulaması Hazırlama

NGINX’i diğer sunucularımızın önünde kullanabileceğimiz pek çok şey var. Neyse ki, NGINX özelliklerini katman katman ekleyebiliriz. İlk adımımız NGINX’in trafiği alması ve bu trafiği bizim bir uygulamamıza yönlendirmesidir.

Kaynaklarımız,

Node.js Uygulamasını Edinme

Bu ilk uygulama için, GitHub’dan almamız gereken çok uygulamalı bir Node.js sistemi kullanacağız. Yapmamız gereken ilk şey, Node.js‘yi kurmaktır:

[root] $ curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
[root] $ yum install -y nodejs

Node.js yüklendikten sonra, kod depomuzu klonlayacağız ve gereken birden çok uygulamayı çalıştıracağız:

[root] $ mkdir /srv/www/
[root] $ cd /srv/www/
[root] $ git clone https://github.com/CloudAssessments/s3photoapp
[root] $ cd s3photoapp
[root] $ make install

Uygulamalarımızı başlatmadan önce AWS kimlik bilgilerinizi yapılandırmamız gerekiyor.

AWS Kimlik Bilgilerini Yapılandırma

S3 ve DynamoDB’ye erişmemiz gerekiyor, bu nedenle AWS IAM’de aşağıdaki izinlere sahip bir kullanıcı oluşturacağız:

  1. AmazonS3FullAccess
  2. AmazonDynamoDBFullAccess

Kullanıcıyı oluşturduktan sonra, oluşturacağımız bazı hizmetlerde ACCESS_KEY_ID ve SECRET_ACCESS_KEY değerlerini kullanmamız gerekecek.

Node.js Hizmetlerini Çalıştırma

NGINX’i yapılandırmaya geri dönmeden önce, Node.js uygulamalarının üçü için systemd hizmetleri kuracağız. Fotoğraf filtresi en basit yapılandırmaya sahiptir:

/etc/systemd/system/photo-filter.service

[Unit]
Description=photo-filter Node.js service
After=network.target

[Service]
Restart=always
User=nobody
Group=nobody
Environment=NODE_ENV=production
ExecStart=/bin/node /srv/www/s3photoapp/apps/photo-filter/server.js


[Install]
WantedBy=multi-user.target

Hem fotoğraf depolama hem de web istemcisi hizmetleri, AWS ile etkileşim için ek ortam değişkenlerine ihtiyaç duyar:

/etc/systemd/system/photo-storage.service

[Unit]
Description=photo-storage Node.js service
After=network.target

[Service]
Restart=always
User=nobody
Group=nobody
Environment=NODE_ENV=production
Environment=AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID
Environment=AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
ExecStart=/bin/node /srv/www/s3photoapp/apps/photo-storage/server.js


[Install]
WantedBy=multi-user.target

/etc/systemd/system/web-client.service

[Unit]
Description=S3 Photo App Node.js service
After=network.target photo-filter.target photo-storage.target

[Service]
Restart=always
User=nobody
Group=nobody
Environment=NODE_ENV=production
Environment=AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY_ID
Environment=AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
ExecStart=/srv/www/s3photoapp/apps/web-client/bin/www


[Install]
WantedBy=multi-user.target

Son olarak, hizmetlerimizi başlatıp etkinleştirelim:

[root] $ systemctl start photo-storage
[root] $ systemctl enable photo-storage
[root] $ systemctl start photo-filter
[root] $ systemctl enable photo-filter
[root] $ systemctl start web-client
[root] $ systemctl enable web-client

Bir sonraki derste, NGINX’i Node.js uygulamalarımızın önünde bir reverse proxy olarak nasıl yapılandıracağımızı inceleyeceğiz.

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top