VPS'de Node.js Uygulaması Yayınlama: Adım Adım Kurulum
Node.js, sunucu tarafında JavaScript çalıştırmanıza olanak tanıyan güçlü ve popüler bir platformdur. Uygulamalarınızı internete açmak için, bir VPS (Sanal Özel Sunucu) kullanmak ideal bir çözümdür. Bu makalede, Node.js uygulamanızı bir VPS'ye nasıl yayınlayacağınızı adım adım anlatacağız.
1. VPS Seçimi ve Kurulumu
İlk adım, ihtiyaçlarınıza uygun bir VPS sağlayıcısı seçmektir. Piyasada birçok seçenek bulunmaktadır: DigitalOcean, Linode, Vultr, AWS (Amazon Web Services), Google Cloud Platform gibi. Her birinin farklı fiyatlandırma planları, özellikler ve coğrafi konumları vardır. Projenizin büyüklüğüne, beklenen trafiğe ve bütçenize göre bir seçim yapın.
VPS'nizi seçtikten sonra, bir işletim sistemi seçmeniz gerekecektir. Ubuntu, CentOS, Debian gibi popüler Linux dağıtımları Node.js uygulamaları için yaygın olarak kullanılır. Ubuntu, yeni başlayanlar için genellikle daha kullanıcı dostu olarak kabul edilir.
VPS'nizi oluşturduktan sonra, SSH (Secure Shell) kullanarak sunucunuza bağlanmanız gerekecektir. SSH, sunucunuza güvenli bir şekilde erişmenizi ve komutlar çalıştırmanızı sağlar. Terminalinizde şu komutu kullanarak sunucunuza bağlanabilirsiniz:
ssh kullanıcıadı@sunucu_ip_adresi
Örneğin:
ssh [email protected]
Sunucunuza ilk kez bağlanıyorsanız, bir parola girmeniz veya bir SSH anahtarı kullanmanız istenecektir. SSH anahtarları, parolalardan daha güvenlidir ve şiddetle tavsiye edilir.
1.1 Güvenlik Önlemleri
Sunucunuzun güvenliğini sağlamak önemlidir. İlk olarak, varsayılan SSH portunu (22) değiştirmeyi düşünebilirsiniz. Bunun için /etc/ssh/sshd_config
dosyasını düzenleyin ve Port
satırını değiştirin. Değişiklikleri uyguladıktan sonra SSH servisini yeniden başlatmanız gerekecektir:
sudo systemctl restart sshd
Ayrıca, bir güvenlik duvarı (firewall) yapılandırmak da önemlidir. UFW (Uncomplicated Firewall) Ubuntu'da yaygın olarak kullanılan bir güvenlik duvarıdır. UFW'yi kurmak ve etkinleştirmek için şu komutları kullanabilirsiniz:
sudo apt update
sudo apt install ufw
sudo ufw allow OpenSSH
sudo ufw enable
Uygulamanızın kullandığı portu da UFW'ye eklemeyi unutmayın. Örneğin, uygulamanız 3000 portunu kullanıyorsa:
sudo ufw allow 3000
2. Node.js ve Gerekli Araçların Kurulumu
VPS'nize bağlandıktan sonra, Node.js ve uygulamanızın ihtiyaç duyduğu diğer araçları kurmanız gerekecektir. Node.js'yi kurmanın en iyi yolu, Node Version Manager (NVM) kullanmaktır. NVM, farklı Node.js sürümlerini kolayca yönetmenize olanak tanır.
NVM'yi kurmak için şu komutları kullanabilirsiniz:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Kurulumdan sonra, terminalinizi yeniden başlatmanız veya source ~/.nvm/nvm.sh
komutunu çalıştırmanız gerekebilir.
NVM kurulduktan sonra, istediğiniz Node.js sürümünü kurabilirsiniz. En son LTS (Long Term Support) sürümünü kurmak için:
nvm install --lts
Ardından, bu sürümü kullanmak için:
nvm use --lts
Node.js ile birlikte, npm (Node Package Manager) de kurulacaktır. npm, Node.js paketlerini kurmanıza ve yönetmenize olanak tanır. Uygulamanızın bağımlılıklarını kurmak için, uygulamanızın kök dizinine gidin ve şu komutu çalıştırın:
npm install
Uygulamanızın global olarak erişilebilir olmasını gerektiren paketler varsa, bunları -g
parametresiyle kurabilirsiniz. Örneğin, PM2'yi global olarak kurmak için:
npm install -g pm2
3. Uygulama Dosyalarını VPS'ye Aktarma
Uygulama dosyalarınızı VPS'ye aktarmanın birkaç yolu vardır: Git, SCP (Secure Copy) veya FTP (File Transfer Protocol). Git, versiyon kontrolü için kullanılıyorsa en iyi seçenektir.
3.1 Git ile Aktarma
Uygulamanız bir Git deposunda bulunuyorsa, VPS'nizde Git'i kurun:
sudo apt update
sudo apt install git
Ardından, uygulamanızın deposunu VPS'nize klonlayın:
git clone
3.2 SCP ile Aktarma
SCP, dosyaları güvenli bir şekilde bir sunucudan diğerine kopyalamanıza olanak tanır. Yerel makinenizden VPS'nize dosya kopyalamak için şu komutu kullanabilirsiniz:
scp -r yerel_dizin kullanıcıadı@sunucu_ip_adresi:hedef_dizin
Örneğin:
scp -r /home/kullanici/uygulama [email protected]:/var/www/
4. Uygulamayı Çalıştırma ve Yönetme
Uygulama dosyalarınızı VPS'ye aktardıktan sonra, uygulamayı çalıştırmanız gerekecektir. Ancak, SSH bağlantınız koptuğunda uygulamanın durmasını istemezsiniz. Bu nedenle, PM2 gibi bir süreç yöneticisi kullanmak önemlidir.
PM2, Node.js uygulamalarını yönetmek ve çalıştırmak için popüler bir araçtır. Uygulamanızı otomatik olarak yeniden başlatır, logları yönetir ve daha birçok kullanışlı özellik sunar.
PM2'yi kurduktan sonra, uygulamanızı çalıştırmak için şu komutu kullanabilirsiniz:
pm2 start app.js
Burada app.js
uygulamanızın ana dosyasıdır. Uygulamanız farklı bir dosyada başlatılıyorsa, o dosyanın adını kullanın.
PM2, uygulamanızı otomatik olarak başlatacak ve yeniden başlatacaktır. Uygulamanızın durumunu kontrol etmek için:
pm2 status
Uygulamanızın loglarını görmek için:
pm2 logs
Uygulamanızı başlatma sırasında otomatik olarak başlatmak için:
pm2 startup systemd
pm2 save
5. Ters Proxy Kurulumu (Nginx ile)
Uygulamanızın 3000 gibi bir portta çalıştığını varsayalım. Kullanıcıların uygulamanıza example.com
gibi bir alan adı üzerinden erişmesini istiyorsanız, bir ters proxy (reverse proxy) kurmanız gerekecektir. Nginx, popüler ve güçlü bir ters proxy sunucusudur.
Nginx'i kurmak için:
sudo apt update
sudo apt install nginx
Nginx kurulduktan sonra, uygulamanız için bir sanal sunucu (virtual host) yapılandırmanız gerekecektir. Yeni bir yapılandırma dosyası oluşturun: /etc/nginx/sites-available/example.com
(example.com
alan adınızla değiştirin) ve aşağıdaki içeriği ekleyin:
server {
listen 80;
server_name example.com www.example.com;
location / {
proxy_pass http://localhost:3000;
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;
}
}
Bu yapılandırma, gelen tüm istekleri example.com
ve www.example.com
adreslerinden localhost:3000
'e yönlendirecektir.
Yapılandırma dosyasını etkinleştirmek için:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Varsayılan yapılandırmayı devre dışı bırakmak için (isteğe bağlı):
sudo rm /etc/nginx/sites-enabled/default
Nginx'i yeniden başlatın:
sudo systemctl restart nginx
Artık example.com
adresini ziyaret ettiğinizde, Node.js uygulamanızın çalıştığını görmelisiniz.
5.1 SSL Sertifikası Kurulumu (Let's Encrypt ile)
Web sitenizin güvenliğini sağlamak için bir SSL sertifikası kurmanız önemlidir. Let's Encrypt, ücretsiz ve otomatik bir SSL sertifika sağlayıcısıdır. Certbot, Let's Encrypt sertifikalarını kolayca kurmanıza olanak tanıyan bir araçtır.
Certbot'u kurmak için:
sudo apt update
sudo apt install certbot python3-certbot-nginx
Certbot'u çalıştırmak ve SSL sertifikasını otomatik olarak kurmak için:
sudo certbot --nginx -d example.com -d www.example.com
Certbot, Nginx yapılandırmanızı otomatik olarak güncelleyecek ve SSL sertifikasını kuracaktır. Ayrıca, sertifikaların otomatik olarak yenilenmesini de yapılandıracaktır.
Sonuç ve Özet
Bu makalede, Node.js uygulamanızı bir VPS'ye nasıl yayınlayacağınızı adım adım anlattık. VPS seçimi, Node.js ve gerekli araçların kurulumu, uygulama dosyalarının aktarılması, uygulamanın çalıştırılması ve yönetilmesi, ters proxy kurulumu ve SSL sertifikası kurulumu gibi konuları ele aldık. Bu adımları izleyerek, Node.js uygulamanızı başarıyla internete açabilirsiniz.
Unutmayın, güvenlik her zaman öncelikli olmalıdır. VPS'nizin güvenliğini sağlamak için güvenlik duvarı yapılandırması, SSH portunu değiştirme ve düzenli güncellemeler yapma gibi önlemler almayı unutmayın. Başarılar dileriz!