Takip et

Ekip İçin VPS Üzerinde Node.js Geliştirme Ortamı Kurulumu: Kapsamlı Bir Rehber

Ekip İçin VPS Üzerinde Node.js Geliştirme Ortamı Kurulumu: Kapsamlı Bir Rehber Giriş Modern web geliştirme dünyasında, hızlı prototipleme

Ekip İçin VPS Üzerinde Node.js Geliştirme Ortamı Kurulumu: Kapsamlı Bir Rehber

Giriş

Modern web geliştirme dünyasında, hızlı prototipleme ve ölçeklenebilir uygulamalar oluşturmak için Node.js giderek daha popüler hale gelmektedir. Bir ekip olarak çalışırken, herkesin tutarlı ve verimli bir geliştirme ortamına sahip olması kritik öneme sahiptir. Sanal Özel Sunucu (VPS), bu tür bir ortamı sağlamak için mükemmel bir platform sunar. VPS, paylaşımlı barındırma hizmetlerine kıyasla daha fazla kontrol, esneklik ve izolasyon sağlarken, özel sunucuların maliyetinden ve karmaşıklığından kaçınmanızı sağlar. Bu kapsamlı rehberde, bir ekip için VPS üzerinde güvenli, ölçeklenebilir ve işbirliğine dayalı bir Node.js geliştirme ortamını adım adım nasıl kuracağınızı anlatacağız. Amaç, sadece Node.js’i çalıştırmak değil, aynı zamanda güvenlik, sürüm kontrolü, veritabanı yönetimi ve sürekli çalışma gibi kritik unsurları da entegre etmektir.

Ön Hazırlıklar

VPS üzerinde başarılı bir geliştirme ortamı kurmak için bazı temel ön hazırlıklar yapmak gereklidir. Bu adımlar, kurulum sürecinin sorunsuz ilerlemesini sağlayacak ve gelecekteki olası sorunları minimize edecektir.

VPS Seçimi ve Kaynak Planlaması

İlk adım, ihtiyaçlarınıza uygun bir VPS sağlayıcısı ve planı seçmektir. Popüler sağlayıcılar arasında DigitalOcean, Linode, Vultr, AWS Lightsail ve Google Cloud Platform (Compute Engine) bulunmaktadır. Seçim yaparken aşağıdaki faktörleri göz önünde bulundurun:
* İşletim Sistemi: Ubuntu Server (LTS sürümleri önerilir) veya Debian gibi Linux dağıtımları Node.js geliştirme için idealdir. Bu rehberde Ubuntu Server üzerinde ilerleyeceğiz.
* CPU: Uygulamalarınızın işlem yüküne bağlı olarak yeterli çekirdek sayısına sahip bir plan seçin. Genellikle 1-2 çekirdek başlangıç için yeterlidir.
* RAM: Node.js uygulamaları belleği etkin kullanabilir. Uygulamanızın ve veritabanınızın ihtiyaçlarına göre 2GB veya daha fazla RAM tercih edin. Ekip üyelerinin aynı anda test yapacağını düşünerek biraz daha yüksek bir RAM başlangıcı iyi olabilir.
* Disk Alanı: Kodunuz, bağımlılıklar, veritabanı ve log dosyaları için yeterli disk alanı sağlayın. SSD tabanlı depolama, performans açısından büyük avantaj sağlar. 40-80GB başlangıç için iyi bir noktadır.
* Veri Transferi (Bant Genişliği): Uygulamanızın tahmini trafiğini karşılayacak bir bant genişliği limiti olan bir plan seçin.
* Konum: Kullanıcılarınıza veya ekip üyelerinize coğrafi olarak yakın bir veri merkezi seçmek gecikmeyi azaltır.

Alan Adı ve DNS Ayarları (Opsiyonel ama Önerilir)

Uygulamalarınıza kolayca erişmek ve SSL sertifikası kurmak için bir alan adına sahip olmak önemlidir. Alan adınızı bir DNS sağlayıcısı (örn. Cloudflare) üzerinden yönetmek, DNS kayıtlarını ayarlamayı ve gelecekteki değişiklikleri kolaylaştırır. VPS’nizin IP adresini alan adınıza (A kaydı) yönlendirin.

SSH Erişimi ve Güvenlik İlkeleri

VPS’nize güvenli bir şekilde erişmek için SSH (Secure Shell) kullanacaksınız. SSH anahtar tabanlı kimlik doğrulama, parola tabanlı kimlik doğrulamadan çok daha güvenlidir. Bu nedenle, yerel makinenizde bir SSH anahtar çifti oluşturmanız ve genel anahtarınızı VPS’ye yüklemeniz şiddetle tavsiye edilir.
* Anahtar Oluşturma (Yerel Makine): ssh-keygen -t rsa -b 4096 -C "email@example.com" komutu ile anahtarınızı oluşturun.
* Genel Anahtarı Kopyalama: ssh-copy-id kullanıcı@sunucu_ip_adresi komutu veya manuel olarak ~/.ssh/authorized_keys dosyasına ekleyerek genel anahtarınızı VPS’ye kopyalayın.

VPS Temel Kurulumu ve Güvenliği

VPS’nizin ilk kurulumu ve temel güvenlik önlemlerinin alınması, sağlam bir geliştirme ortamının temelini oluşturur.

Sistem Güncelleme ve Yükseltme

Yeni bir VPS başlattıktan sonra yapmanız gereken ilk şey, işletim sistemini güncellemektir. Bu, en son güvenlik yamalarını ve yazılım paketlerini almanızı sağlar.

sudo apt update
sudo apt upgrade -y

Yeni Bir Kullanıcı Oluşturma ve Sudo Yetkileri Verme

VPS’ye varsayılan ‘root’ kullanıcısı yerine, daha az yetkiye sahip ayrı bir kullanıcı ile erişmek en iyi güvenlik uygulamasıdır.

sudo adduser yeni_kullanici
sudo usermod -aG sudo yeni_kullanici

Şimdi bu yeni kullanıcıya geçiş yapın ve root kullanıcısından çıkış yapın.

SSH Anahtar Tabanlı Kimlik Doğrulama Kurulumu ve Parola ile Girişi Devre Dışı Bırakma

Yeni oluşturduğunuz kullanıcının SSH anahtarını VPS’ye ekleyin ve parola ile girişi devre dışı bırakarak güvenliği artırın.
1. Anahtarı Kopyalama: Yerel makinenizden ssh-copy-id yeni_kullanici@sunucu_ip_adresi komutunu çalıştırın.
2. SSH Yapılandırmasını Düzenleme: sudo nano /etc/ssh/sshd_config dosyasını açın ve aşağıdaki satırları bulun/değiştirin:

PermitRootLogin no
    PasswordAuthentication no
    PubkeyAuthentication yes

3. SSH Servisini Yeniden Başlatma: sudo systemctl restart sshd
Bu adımdan sonra, sadece SSH anahtarınızla yeni kullanıcınızla giriş yapabileceksiniz.

Güvenlik Duvarı (UFW) Kurulumu ve Ayarları

UFW (Uncomplicated Firewall), Ubuntu’daki güvenlik duvarını yönetmeyi kolaylaştırır. Yalnızca ihtiyacınız olan portları açarak sunucunuzu koruyun.

sudo apt install ufw -y
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
sudo ufw status

Bu komutlar SSH, HTTP (80) ve HTTPS (443) portlarını açar. Node.js uygulamanız farklı bir portta çalışacaksa (örn. 3000), o portu da açmanız gerekir: sudo ufw allow 3000/tcp.

Fail2Ban Kurulumu (İsteğe Bağlı ama Önerilir)

Fail2Ban, sunucunuza yapılan kaba kuvvet saldırılarını engelleyerek güvenliği artırır.

sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Varsayılan yapılandırma çoğu durum için yeterlidir, ancak sudo nano /etc/fail2ban/jail.local dosyasını düzenleyerek daha fazla özelleştirme yapabilirsiniz.

Node.js Kurulumu ve Yönetimi

Birden fazla Node.js projesi veya farklı Node.js sürümleriyle çalışmak zorunda kalabileceğiniz için, Node Version Manager (NVM) kullanmak en iyi yöntemdir.

Neden NVM Kullanmalıyız?

NVM, farklı Node.js sürümlerini kolayca kurmanıza, yönetmenize ve aralarında geçiş yapmanıza olanak tanır. Bu, özellikle ekip üyelerinin farklı projeler için farklı Node.js sürümlerine ihtiyaç duyabileceği durumlarda çok önemlidir.

NVM Kurulumu

NVM’i yüklemek için aşağıdaki komutları kullanın:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

Kurulumdan sonra, terminalinizi kapatıp yeniden açın veya source ~/.bashrc (veya ~/.zshrc gibi kullandığınız shell’e göre) komutunu çalıştırın.
NVM’in doğru yüklendiğini kontrol etmek için: nvm --version

Node.js ve NPM Kurulumu

NVM ile belirli bir Node.js sürümünü kurmak çok kolaydır:

nvm install 18 # En son LTS sürümünü kurar (veya istediğiniz sürümü belirtin, örn. nvm install 16.14.0)
nvm use 18 # Bu sürümü kullanmak için ayarlar
nvm alias default 18 # Her yeni kabuk oturumunda bu sürümü varsayılan yapar
node -v # Node.js sürümünü kontrol edin
npm -v # NPM sürümünü kontrol edin

Gerekli Global Paketler (İsteğe Bağlı)

Bazı paketler geliştirme sürecini kolaylaştırmak için global olarak yüklenebilir:
* PM2: Node.js uygulamalarını üretimde sürekli çalıştırmak ve yönetmek için kullanılır. (npm install -g pm2)
* Nodemon: Geliştirme sırasında dosya değişikliklerini algılayıp Node.js uygulamasını otomatik olarak yeniden başlatır. (npm install -g nodemon)

Veritabanı Kurulumu (Örnek: PostgreSQL veya MongoDB)

Çoğu Node.js uygulaması bir veritabanına ihtiyaç duyar. Seçiminiz uygulamanızın gereksinimlerine bağlı olacaktır (ilişkisel mi yoksa NoSQL mi). Burada iki popüler seçeneğin kurulumunu ele alacağız.

PostgreSQL Kurulumu ve Temel Ayarları

PostgreSQL, güçlü ve güvenilir bir ilişkisel veritabanı yönetim sistemidir.

sudo apt install postgresql postgresql-contrib -y
sudo systemctl enable postgresql
sudo systemctl start postgresql

Kullanıcı ve Veritabanı Oluşturma:

sudo -i -u postgres
psql

PostgreSQL komut satırında:

CREATE DATABASE myapp_db;
CREATE USER myapp_user WITH PASSWORD 'guclu_sifre';
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO myapp_user;
\q

exit komutuyla postgres kullanıcısından çıkın.

Uzaktan Erişim Kısıtlamaları:
Güvenlik için, PostgreSQL’e uzaktan erişimi yalnızca belirli IP adresleriyle veya hiç kısıtlamak isteyebilirsiniz. sudo nano /etc/postgresql/14/main/postgresql.conf (sürüm numarası değişebilir) dosyasında listen_addresses = 'localhost' satırını bulun ve gerektiğinde düzenleyin. sudo nano /etc/postgresql/14/main/pg_hba.conf dosyasında da erişim kurallarını belirleyebilirsiniz.

MongoDB Kurulumu ve Temel Ayarları

MongoDB, esnek şeması ve yüksek ölçeklenebilirliği ile popüler bir NoSQL veritabanıdır.
1. GPG Anahtarını İçe Aktarma:

curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | \
       sudo gpg --dearmor -o /usr/share/keyrings/mongodb-archive-keyring.gpg

2. Depoyu Oluşturma:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-archive-keyring.gpg ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

3. Yükleme:

sudo apt update
    sudo apt install -y mongodb-org

4. Servisi Başlatma:

sudo systemctl enable mongod
    sudo systemctl start mongod
    sudo systemctl status mongod

Kullanıcı ve Veritabanı Oluşturma:

mongosh

MongoDB kabuğunda:

use myapp_db
db.createUser(
   {
     user: "myapp_user",
     pwd: "guclu_sifre",
     roles: [ { role: "readWrite", db: "myapp_db" } ]
   }
)
exit

Uzaktan Erişim Kısıtlamaları:
MongoDB’nin varsayılan olarak yalnızca localhost’tan erişilebilir olması gerekir. sudo nano /etc/mongod.conf dosyasında bindIp ayarını kontrol edin. Güvenlik için bindIp: 127.0.0.1 olarak kalmalıdır. Uzaktan erişim gerekiyorsa, güvenlik duvarı kuralları ve kimlik doğrulama ile dikkatli olun.

Sürüm Kontrolü ve Kod Dağıtımı

Ekip çalışmasında sürüm kontrolü vazgeçilmezdir. Git, kodunuzu yönetmek ve ekip üyeleri arasında işbirliği yapmak için standarttır.

Git Kurulumu

sudo apt install git -y

Git Yapılandırması:

git config --global user.name "Ekip Üyesi Adı"
git config --global user.email "ekip.uyesi@example.com"

Git Repository Klonlama

Uygulama kodunuzu VPS’ye çekmek için:

cd /var/www/ # Veya tercih ettiğiniz bir dizin
git clone git@github.com:kullanici/repo.git
cd repo
npm install

Eğer özel bir depoyu klonluyorsanız, VPS’nizde de bir SSH anahtar çifti oluşturmanız ve genel anahtarınızı GitHub/GitLab/Bitbucket gibi sürüm kontrol sağlayıcınıza eklemeniz gerekebilir.

ssh-keygen -t rsa -b 4096 -C "vps-repo-key"
cat ~/.ssh/id_rsa.pub # Bu anahtarı sürüm kontrol sağlayıcınıza ekleyin

Ortam Değişkenleri Yönetimi

Hassas bilgiler (veritabanı kimlik bilgileri, API anahtarları) doğrudan koda yazılmamalıdır. Bunun yerine ortam değişkenleri kullanılmalıdır.
* .env Dosyası: Projenizin kök dizininde bir .env dosyası oluşturun ve hassas bilgileri buraya yazın. Bu dosyayı .gitignore‘a eklemeyi unutmayın.

DB_HOST=localhost
    DB_USER=myapp_user
    DB_PASS=guclu_sifre
    NODE_ENV=development

* dotenv Paketi: Node.js uygulamanızda dotenv paketini kullanarak bu değişkenleri yükleyin.

npm install dotenv

Uygulamanızın başlangıç dosyasında (örn. app.js):

require('dotenv').config();
    const dbHost = process.env.DB_HOST;
    // ...

* PM2 ile Ortam Değişkenleri: PM2 ile uygulama başlatırken de ortam değişkenleri tanımlayabilirsiniz.

Uygulama Yönetimi ve Sürekli Çalıştırma

Geliştirme ortamında bile, uygulamanızın çökmesi durumunda otomatik olarak yeniden başlaması veya arka planda sürekli çalışması önemlidir. PM2 bu konuda mükemmel bir araçtır.

PM2 Kurulumu ve Kullanımı

PM2’yi global olarak kurduysanız:

npm install -g pm2

Uygulama Başlatma:

cd /var/www/repo
pm2 start app.js --name "my-node-app"

* app.js yerine ana Node.js dosyanızın adını yazın.
* --name ile uygulamanıza kolayca tanınabilir bir isim verin.
* --watch ekleyerek dosya değişikliklerinde otomatik yeniden başlatma sağlayabilirsiniz (geliştirme için idealdir).
* pm2 start ecosystem.config.js ile daha karmaşık yapılandırmalar için bir yapılandırma dosyası kullanabilirsiniz.

PM2 Komutları:
* pm2 list: Çalışan uygulamaları listeler.
* pm2 stop my-node-app: Uygulamayı durdurur.
* pm2 restart my-node-app: Uygulamayı yeniden başlatır.
* pm2 delete my-node-app: Uygulamayı PM2 listesinden kaldırır.
* pm2 logs my-node-app: Uygulamanın loglarını gösterir.
* pm2 monit: Tüm uygulamaların kaynak kullanımını izler.

PM2 Başlangıçta Çalıştırma (Startup Script)

Sunucu yeniden başlatıldığında uygulamalarınızın otomatik olarak başlamasını sağlamak için PM2’nin startup script’ini oluşturun:

pm2 startup systemd
pm2 save

Bu komutlar, mevcut PM2 süreçlerini kaydeder ve sunucu her başladığında otomatik olarak yeniden yüklenmelerini sağlayan bir systemd servisi oluşturur.

Web Sunucusu ve Ters Proxy (Nginx)

Nginx, Node.js uygulamalarınızın önüne bir ters proxy olarak yerleştirilerek performans, güvenlik ve ek özellikler sağlar.

Neden Nginx?

* Ters Proxy: Gelen HTTP isteklerini Node.js uygulamanıza yönlendirir.
* Yük Dengeleme: Birden fazla Node.js örneği arasında trafiği dağıtabilir.
* Statik Dosya Sunumu: Nginx, statik dosyaları (CSS, JS, resimler) Node.js’ten daha verimli bir şekilde sunabilir.
* SSL/TLS Şifrelemesi: Let’s Encrypt ile kolayca SSL sertifikası entegrasyonu sağlar.
* Güvenlik: Doğrudan Node.js uygulamanızın dış dünyaya açık olmasını engeller.

Nginx Kurulumu

sudo apt install nginx -y
sudo ufw allow 'Nginx HTTP' # Eğer HTTPS kullanacaksanız 'Nginx HTTPS' veya 'Nginx Full'
sudo systemctl enable nginx
sudo systemctl start nginx

Nginx Yapılandırması

Node.js uygulamanız için yeni bir Nginx yapılandırma dosyası oluşturun:

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

Dosyanın içine aşağıdaki içeriği ekleyin (alan adınızı ve Node.js uygulamanızın çalıştığı portu güncelleyin):

server {
    listen 80;
    server_name your_domain.com www.your_domain.com;

    location / {
        proxy_pass http://localhost:3000; # Node.js uygulamanızın çalıştığı port
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Yapılandırma dosyasını etkinleştirin ve Nginx’i yeniden başlatın:

sudo ln -s /etc/nginx/sites-available/my-node-app /etc/nginx/sites-enabled/
sudo nginx -t # Yapılandırma dosyasını test edin
sudo systemctl restart nginx

SSL/TLS Şifrelemesi (Let’s Encrypt ile Certbot)

Uygulamanızın güvenliğini artırmak için HTTPS kullanmak zorunludur. Let’s Encrypt, ücretsiz SSL sertifikaları sağlar ve Certbot aracıyla kolayca kurulabilir.

sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx -d your_domain.com -d www.your_domain.com

Certbot, Nginx yapılandırmanızı otomatik olarak güncelleyecek ve sertifikalarınızı yenilemek için bir cron job oluşturacaktır.

Geliştirme Ortamı Ekip İçin Optimizasyonu

Bir ekip olarak çalışırken, ortamın işbirliğini desteklemesi ve tutarlılığı sağlaması önemlidir.

Ortak Dizinler ve İzinler

Tüm ekip üyelerinin kod depolarına ve log dosyalarına erişebilmesi için uygun dizin izinlerini ayarlayın. Örneğin, /var/www/ dizinini veya projenizin bulunduğu dizini bir grup (örn. www-data veya özel bir dev-team grubu) için yazılabilir hale getirebilirsiniz.

sudo groupadd dev-team
sudo usermod -aG dev-team yeni_kullanici
sudo chown -R yeni_kullanici:dev-team /var/www/repo
sudo chmod -R 775 /var/www/repo

Ekip üyeleri sunucuya SSH ile bağlanıp kodu çekebilir, test edebilir.

Ortak Bağımlılıklar ve package-lock.json

Ekip içinde herkesin aynı bağımlılık sürümlerini kullandığından emin olmak için package-lock.json (veya yarn.lock) dosyasını Git’e commit edin. Bu, “benim makinemde çalışıyor” sorunlarını önler.

npm install # package-lock.json'a göre bağımlılıkları kurar

Otomatik Dağıtım (CI/CD Temelleri)

Basit bir CI/CD (Sürekli Entegrasyon/Sürekli Dağıtım) akışı kurmak, geliştirme verimliliğini artırır. Örneğin, GitHub Actions veya GitLab CI/CD kullanarak, bir main branch’ine yapılan her push’ta sunucunuzda otomatik olarak git pull, npm install ve pm2 restart komutlarını çalıştırabilirsiniz.
Bunun için sunucunuzda bir dağıtım anahtarı (deploy key) oluşturup sürüm kontrol sağlayıcınıza eklemeniz ve CI/CD yapılandırma dosyanızda (örn. .github/workflows/deploy.yml) SSH üzerinden komutları çalıştırmanız gerekir.

Geliştirme ve Üretim Ortamları Arasındaki Farklar (NODE_ENV)

Uygulamanızın davranışını (örn. loglama seviyesi, hata ayıklama modu) ortamına göre değiştirmek için NODE_ENV ortam değişkenini kullanın.
* Geliştirme ortamında: NODE_ENV=development
* Üretim ortamında: NODE_ENV=production
PM2 ile başlatırken bu değişkeni ayarlayabilirsiniz:

pm2 start app.js --name "my-node-app" --env development

Veya ecosystem.config.js dosyasında:

module.exports = {
  apps : [{
    name   : "my-node-app",
    script : "./app.js",
    env: {
      "NODE_ENV": "development",
    },
    env_production : {
       "NODE_ENV": "production"
    }
  }]
};

Sonra pm2 start ecosystem.config.js --env production ile başlatabilirsiniz.

Log Yönetimi

PM2, uygulama loglarını yönetmek için yerleşik özelliklere sahiptir. pm2 logs komutuyla logları gerçek zamanlı olarak izleyebilirsiniz. Logların çok büyümesini engellemek için PM2’nin log rotasyonunu kullanabilirsiniz:

pm2 install pm2-logrotate

Bu modül, log dosyalarını belirli boyutlara ulaştığında otomatik olarak döndürür ve sıkıştırır.

İzleme ve Performans (İsteğe Bağlı)

Uygulamanızın performansını ve sağlığını izlemek için ek araçlar kullanabilirsiniz.
* Prometheus ve Grafana: Sunucu metriklerini ve uygulama metriklerini toplamak ve görselleştirmek için güçlü bir kombinasyondur.
* New Relic, Datadog: Ticari çözümler, daha kapsamlı uygulama performansı izleme (APM) ve hata raporlama özellikleri sunar.
* PM2 Monit: PM2’nin kendi izleme arayüzü, temel CPU ve bellek kullanımını gösterir.

Sorun Giderme ve Yaygın Hatalar

Kurulum sırasında veya sonrasında karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:

* Port Çakışmaları: Uygulamanızın dinlediği portun başka bir servis tarafından kullanılıp kullanılmadığını kontrol edin. sudo lsof -i :PORT_NUMARASI veya sudo netstat -tulnp | grep PORT_NUMARASI komutları yardımcı olabilir.
* İzin Hataları: Dosya veya dizin izinlerinin yanlış ayarlanması yaygın bir sorundur. chmod ve chown komutlarını doğru kullandığınızdan emin olun. Özellikle log dosyaları veya geçici dizinler için yazma izinleri önemlidir.
* Ağ Yapılandırması (Güvenlik Duvarı): Güvenlik duvarınızın (UFW) uygulamanızın kullandığı portları açtığından emin olun. sudo ufw status komutunu kontrol edin.
* Bağımlılık Sorunları: npm install sırasında veya uygulama başlatılırken bağımlılık hataları alıyorsanız, node_modules dizinini silip npm cache clean --force ve ardından tekrar npm install deneyin.
* Ortam Değişkenleri Yüklenmiyor: .env dosyasının doğru yerde olduğundan ve dotenv paketinin uygulamanızda erken bir aşamada çağrıldığından emin olun. PM2 ile başlatırken de ortam değişkenlerinin doğru ayarlandığını kontrol edin.
* Nginx 502 Bad Gateway: Bu genellikle Nginx’in Node.js uygulamanıza ulaşamadığı anlamına gelir. Node.js uygulamanızın çalıştığından, doğru portu dinlediğinden ve Nginx yapılandırmanızdaki proxy_pass adresinin doğru olduğundan emin olun. PM2 loglarını kontrol edin.

Sonuç

Bir ekip için VPS üzerinde Node.js geliştirme ortamı kurmak, ilk başta karmaşık görünebilir ancak doğru adımları takip ederek güvenli, verimli ve işbirliğine açık bir platform oluşturmak mümkündür. Bu rehberde, temel VPS kurulumundan güvenlik ayarlarına, Node.js ve veritabanı kurulumundan uygulama yönetimine ve Nginx ile ters proxy yapılandırmasına kadar tüm önemli adımları ele aldık.

Unutmayın ki geliştirme ortamınız sürekli evrilecektir. Ekibinizin ihtiyaçları değiştikçe veya yeni teknolojiler ortaya çıktıkça ortamınızı güncellemeyi ve optimize etmeyi ihmal etmeyin. Güvenlik en önemli önceliklerden biri olmalı ve düzenli güncellemeler, güçlü parolalar ve erişim kısıtlamaları gibi iyi uygulamalar her zaman takip edilmelidir. Bu kapsamlı rehber sayesinde, ekibiniz Node.js projelerini VPS üzerinde başarıyla geliştirip dağıtabilecek sağlam bir temele sahip olacaktır.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

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

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.