{"id":20401,"date":"2026-02-26T23:50:50","date_gmt":"2026-02-26T20:50:50","guid":{"rendered":"https:\/\/sunucun.com.tr\/blog\/nodejs-sunucu-kurulumu-modern-web-uygulamalari-icin-altyapi\/"},"modified":"2026-02-26T23:50:57","modified_gmt":"2026-02-26T20:50:57","slug":"nodejs-sunucu-kurulumu-modern-web-uygulamalari-icin-altyapi","status":"publish","type":"post","link":"https:\/\/sunucun.com.tr\/blog\/nodejs-sunucu-kurulumu-modern-web-uygulamalari-icin-altyapi\/","title":{"rendered":"Node.js Sunucu Kurulumu: Modern Web Uygulamalar\u0131 \u0130\u00e7in Altyap\u0131."},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/sunucun.com.tr\/blog\/nodejs-sunucu-kurulumu-modern-web-uygulamalari-icin-altyapi\/#Nodejs_Nedir_ve_Neden_Sunucu_Kurulumu_Onemlidir\" >Node.js Nedir ve Neden Sunucu Kurulumu \u00d6nemlidir?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/sunucun.com.tr\/blog\/nodejs-sunucu-kurulumu-modern-web-uygulamalari-icin-altyapi\/#Kurulum_Oncesi_Hazirliklar_ve_Sistem_Gereksinimleri\" >Kurulum \u00d6ncesi Haz\u0131rl\u0131klar ve Sistem Gereksinimleri<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/sunucun.com.tr\/blog\/nodejs-sunucu-kurulumu-modern-web-uygulamalari-icin-altyapi\/#Farkli_Yontemlerle_Nodejs_Sunucu_Kurulumu\" >Farkl\u0131 Y\u00f6ntemlerle Node.js Sunucu Kurulumu<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/sunucun.com.tr\/blog\/nodejs-sunucu-kurulumu-modern-web-uygulamalari-icin-altyapi\/#Paket_Yoneticisi_ile_Kurulum_APT_YUM\" >Paket Y\u00f6neticisi ile Kurulum (APT &#038; YUM)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/sunucun.com.tr\/blog\/nodejs-sunucu-kurulumu-modern-web-uygulamalari-icin-altyapi\/#Node_Version_Manager_NVM_ile_Kurulum\" >Node Version Manager (NVM) ile Kurulum<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/sunucun.com.tr\/blog\/nodejs-sunucu-kurulumu-modern-web-uygulamalari-icin-altyapi\/#Nodejs_Uygulamasini_Sunucuda_Calistirmak_ve_Yonetmek\" >Node.js Uygulamas\u0131n\u0131 Sunucuda \u00c7al\u0131\u015ft\u0131rmak ve Y\u00f6netmek<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/sunucun.com.tr\/blog\/nodejs-sunucu-kurulumu-modern-web-uygulamalari-icin-altyapi\/#PM2_Uretim_Ortami_Icin_Surec_Yoneticisi\" >PM2: \u00dcretim Ortam\u0131 \u0130\u00e7in S\u00fcre\u00e7 Y\u00f6neticisi<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/sunucun.com.tr\/blog\/nodejs-sunucu-kurulumu-modern-web-uygulamalari-icin-altyapi\/#Reverse_Proxy_Olarak_Nginx_Yapilandirmasi\" >Reverse Proxy Olarak Nginx Yap\u0131land\u0131rmas\u0131<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<p>Node.js Sunucu Kurulumu: Modern Web Uygulamalar\u0131 \u0130\u00e7in Altyap\u0131. Geli\u015fen web teknolojileri, sunucu taraf\u0131nda daha h\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve verimli \u00e7\u00f6z\u00fcmlere olan ihtiyac\u0131 art\u0131rm\u0131\u015ft\u0131r. \u0130\u015fte bu noktada Node.js, JavaScript&#8217;i sunucu taraf\u0131nda \u00e7al\u0131\u015ft\u0131rabilen g\u00fc\u00e7l\u00fc bir \u00e7al\u0131\u015fma zaman\u0131 ortam\u0131 (runtime environment) olarak \u00f6ne \u00e7\u0131kmaktad\u0131r. Google Chrome&#8217;un V8 JavaScript motoru \u00fczerine in\u015fa edilen Node.js, olay g\u00fcd\u00fcml\u00fc (event-driven) ve engellemeyen (non-blocking I\/O) mimarisi sayesinde \u00f6zellikle ger\u00e7ek zamanl\u0131 uygulamalar, API&#8217;ler ve mikroservisler i\u00e7in ideal bir platform sunar. Performansl\u0131 ve modern bir web uygulamas\u0131 geli\u015ftirmek i\u00e7in at\u0131lmas\u0131 gereken ilk ve en \u00f6nemli ad\u0131mlardan biri, bu teknolojinin \u00fczerinde \u00e7al\u0131\u015faca\u011f\u0131 sunucu altyap\u0131s\u0131n\u0131 do\u011fru bir \u015fekilde yap\u0131land\u0131rmakt\u0131r.<\/p>\n<p><\/p>\n<figure class=\"wp-block-image aligncenter size-medium is-resized\">\n  <img src=\"https:\/\/sunucun.com.tr\/blog\/wp-content\/uploads\/2026\/02\/text-nodejs-sunucu-kurulumu-modern-web-uygulamalari-icin-altyapi.png\" class=\"size-medium aligncenter\" style=\"width:100%;\" alt=\"Node.js Sunucu Kurulumu s\u00fcrecinde Nginx'in ters proxy olarak gelen istekleri uygulamaya y\u00f6nlendirmesi.\" title=\"Nginx Ters Proxy Veri Ak\u0131\u015f \u015eemas\u0131\" loading=\"lazy\" decoding=\"async\"><figcaption>\n    Node.js Sunucu Kurulumu s\u00fcrecinde Nginx&#8217;in ters proxy olarak gelen istekleri uygulamaya y\u00f6nlendirmesi.<br \/>\n  <\/figcaption><\/figure>\n<p><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Nodejs_Nedir_ve_Neden_Sunucu_Kurulumu_Onemlidir\"><\/span>Node.js Nedir ve Neden Sunucu Kurulumu \u00d6nemlidir?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Node.js, geleneksel sunucu taraf\u0131 dillerinden farkl\u0131 bir yakla\u015f\u0131m benimser. Tek bir i\u015f par\u00e7ac\u0131\u011f\u0131 (single thread) kullanarak binlerce e\u015f zamanl\u0131 ba\u011flant\u0131y\u0131 verimli bir \u015fekilde y\u00f6netebilir. Bu, her ba\u011flant\u0131 i\u00e7in ayr\u0131 bir i\u015f par\u00e7ac\u0131\u011f\u0131 olu\u015fturan \u00e7ok i\u015f par\u00e7ac\u0131kl\u0131 (multi-threaded) modellere k\u0131yasla bellek ve i\u015flemci kaynaklar\u0131n\u0131n \u00e7ok daha verimli kullan\u0131lmas\u0131n\u0131 sa\u011flar. Bu mimari, \u00f6zellikle sohbet uygulamalar\u0131, online oyunlar, veri ak\u0131\u015f\u0131 servisleri gibi yo\u011fun I\/O (giri\u015f\/\u00e7\u0131k\u0131\u015f) i\u015flemleri gerektiren projelerde b\u00fcy\u00fck bir avantajd\u0131r. Node.js&#8217;in ne oldu\u011funu daha derinlemesine anlamak i\u00e7in, onun temel felsefesini kavramak \u00f6nemlidir; <a href=\"https:\/\/tr.wikipedia.org\/wiki\/Node.js\" target=\"_blank\" rel=\"follow noopener\">Node.js<\/a>, JavaScript&#8217;in evrensel bir dil olmas\u0131n\u0131 sa\u011flayarak geli\u015ftiricilerin hem istemci (frontend) hem de sunucu (backend) taraf\u0131nda ayn\u0131 dili kullanmas\u0131na olanak tan\u0131r, bu da geli\u015ftirme s\u00fcre\u00e7lerini h\u0131zland\u0131r\u0131r ve basitle\u015ftirir.<\/p>\n<p>Do\u011fru bir sunucu kurulumu, Node.js uygulaman\u0131z\u0131n potansiyelini tam olarak ortaya \u00e7\u0131karabilmesi i\u00e7in hayati \u00f6nem ta\u015f\u0131r. Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir ortam, performans sorunlar\u0131na, g\u00fcvenlik a\u00e7\u0131klar\u0131na ve \u00f6l\u00e7eklenebilirlik problemlerine yol a\u00e7abilir. Sunucu kurulumu sadece Node.js&#8217;in kendisini y\u00fcklemekten ibaret de\u011fildir. Ayn\u0131 zamanda uygulaman\u0131n s\u00fcrekli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayacak bir s\u00fcre\u00e7 y\u00f6neticisi (process manager) kurmay\u0131, gelen istekleri y\u00f6netmek ve g\u00fcvenli\u011fi art\u0131rmak i\u00e7in bir ters proxy (reverse proxy) yap\u0131land\u0131rmay\u0131 ve sistem kaynaklar\u0131n\u0131 verimli kullanmay\u0131 i\u00e7erir. Bu ad\u0131mlar, uygulaman\u0131z\u0131n kararl\u0131, g\u00fcvenli ve y\u00fcksek performansl\u0131 bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 garanti alt\u0131na al\u0131r.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Kurulum_Oncesi_Hazirliklar_ve_Sistem_Gereksinimleri\"><\/span>Kurulum \u00d6ncesi Haz\u0131rl\u0131klar ve Sistem Gereksinimleri<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Node.js kurulumuna ba\u015flamadan \u00f6nce sunucu ortam\u0131n\u0131z\u0131n haz\u0131r oldu\u011fundan emin olmal\u0131s\u0131n\u0131z. Genellikle bir sanal \u00f6zel sunucu (<a href=\"https:\/\/sunucun.com.tr\/vps-sunucu\" data-internallinksmanager029f6b8e52c=\"132\" title=\"Sanal sunucu se\u00e7eneklerini inceleyin\">VPS<\/a>) veya adanm\u0131\u015f bir sunucu bu i\u015flem i\u00e7in idealdir. Kurulum i\u00e7in temel gereksinimler \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Bir Linux Sunucusu:<\/strong> Node.js, Ubuntu, Debian, CentOS gibi pop\u00fcler Linux da\u011f\u0131t\u0131mlar\u0131nda sorunsuz \u00e7al\u0131\u015f\u0131r. Bu rehberde genel komutlar verilecek olsa da, kendi da\u011f\u0131t\u0131m\u0131n\u0131za uygun paket y\u00f6neticisini (APT, YUM vb.) kullanman\u0131z gerekebilir.<\/li>\n<li><strong>SSH Eri\u015fimi:<\/strong> Sunucuya uzaktan ba\u011flanmak ve komutlar\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in SSH eri\u015fiminizin olmas\u0131 gerekir.<\/li>\n<li><strong>Sudo Ayr\u0131cal\u0131klar\u0131na Sahip Bir Kullan\u0131c\u0131:<\/strong> Sistem genelinde kurulum ve yap\u0131land\u0131rma i\u015flemleri yapmak i\u00e7in `sudo` yetkilerine sahip bir kullan\u0131c\u0131 hesab\u0131yla giri\u015f yapman\u0131z \u00f6nemlidir. Do\u011frudan `root` kullan\u0131c\u0131s\u0131 ile \u00e7al\u0131\u015fmak g\u00fcvenlik a\u00e7\u0131s\u0131ndan tavsiye edilmez.<\/li>\n<\/ul>\n<p>Kuruluma ba\u015flamadan \u00f6nce sunucunuzdaki paket listesini ve mevcut paketleri g\u00fcncellemek iyi bir pratiktir. Bu, sisteminizin en son g\u00fcvenlik yamalar\u0131na ve yaz\u0131l\u0131m s\u00fcr\u00fcmlerine sahip olmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Debian\/Ubuntu tabanl\u0131 sistemler i\u00e7in:<\/p>\n<pre><code>sudo apt update\nsudo apt upgrade<\/code><\/pre>\n<p>CentOS\/RHEL tabanl\u0131 sistemler i\u00e7in:<\/p>\n<pre><code>sudo yum update<\/code><\/pre>\n<p>Bu komutlar\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra sisteminiz Node.js kurulumu i\u00e7in haz\u0131r hale gelecektir. Bu temel ad\u0131mlar, kurulum s\u0131ras\u0131nda ya\u015fanabilecek olas\u0131 ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 ve \u00e7at\u0131\u015fmalar\u0131 en aza indirir.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Farkli_Yontemlerle_Nodejs_Sunucu_Kurulumu\"><\/span>Farkl\u0131 Y\u00f6ntemlerle Node.js Sunucu Kurulumu<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Node.js&#8217;i bir sunucuya kurman\u0131n birden fazla yolu vard\u0131r. Se\u00e7ilecek y\u00f6ntem, projenizin gereksinimlerine, ihtiya\u00e7 duydu\u011funuz Node.js s\u00fcr\u00fcm\u00fcne ve esneklik beklentinize g\u00f6re de\u011fi\u015febilir. En yayg\u0131n kullan\u0131lan iki y\u00f6ntem, i\u015fletim sisteminin paket y\u00f6neticisini kullanmak ve Node Version Manager (NVM) arac\u0131n\u0131 kullanmakt\u0131r. Her iki y\u00f6ntemin de kendine \u00f6zg\u00fc avantajlar\u0131 ve dezavantajlar\u0131 bulunur.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Paket_Yoneticisi_ile_Kurulum_APT_YUM\"><\/span>Paket Y\u00f6neticisi ile Kurulum (APT &#038; YUM)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Bu, en basit ve en h\u0131zl\u0131 kurulum y\u00f6ntemidir. Linux da\u011f\u0131t\u0131mlar\u0131n\u0131n kendi resmi depolar\u0131nda genellikle bir Node.js s\u00fcr\u00fcm\u00fc bulunur. Ancak bu depolardaki s\u00fcr\u00fcmler genellikle en g\u00fcncel s\u00fcr\u00fcmler olmayabilir. Daha g\u00fcncel bir s\u00fcr\u00fcm kurmak i\u00e7in NodeSource taraf\u0131ndan sa\u011flanan depolar\u0131 sisteme eklemek daha iyi bir yakla\u015f\u0131md\u0131r.<\/p>\n<p><strong>Ubuntu\/Debian i\u00e7in (Node.js 18.x s\u00fcr\u00fcm\u00fc):<\/strong><\/p>\n<ol>\n<li>NodeSource deposunu eklemek i\u00e7in gerekli beti\u011fi indirin ve \u00e7al\u0131\u015ft\u0131r\u0131n:<br \/>\n    <br \/><code>curl -fsSL https:\/\/deb.nodesource.com\/setup_18.x | sudo -E bash -<\/code><\/li>\n<li>Node.js&#8217;i kurun:<br \/>\n    <br \/><code>sudo apt-get install -y nodejs<\/code><\/li>\n<\/ol>\n<p><strong>CentOS\/RHEL i\u00e7in (Node.js 18.x s\u00fcr\u00fcm\u00fc):<\/strong><\/p>\n<ol>\n<li>NodeSource deposunu eklemek i\u00e7in beti\u011fi \u00e7al\u0131\u015ft\u0131r\u0131n:<br \/>\n    <br \/><code>curl -fsSL https:\/\/rpm.nodesource.com\/setup_18.x | sudo bash -<\/code><\/li>\n<li>Node.js&#8217;i kurun:<br \/>\n    <br \/><code>sudo yum install nodejs -y<\/code><\/li>\n<\/ol>\n<p>Bu y\u00f6ntemle yap\u0131lan kurulum sistem geneline yap\u0131l\u0131r ve y\u00f6netimi kolayd\u0131r. Ancak, farkl\u0131 projeler i\u00e7in farkl\u0131 Node.js s\u00fcr\u00fcmleri kullanman\u0131z gerekti\u011finde esneklik sunmaz.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Node_Version_Manager_NVM_ile_Kurulum\"><\/span>Node Version Manager (NVM) ile Kurulum<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>NVM, ayn\u0131 sunucu \u00fczerinde birden fazla Node.js s\u00fcr\u00fcm\u00fcn\u00fc kurman\u0131za ve bunlar aras\u0131nda kolayca ge\u00e7i\u015f yapman\u0131za olanak tan\u0131yan bir komut sat\u0131r\u0131 arac\u0131d\u0131r. Bu, \u00f6zellikle farkl\u0131 Node.js s\u00fcr\u00fcmleri gerektiren birden fazla projeyi ayn\u0131 sunucuda bar\u0131nd\u0131ran geli\u015ftiriciler i\u00e7in son derece kullan\u0131\u015fl\u0131d\u0131r. NVM, Node.js&#8217;i sistem geneli yerine kullan\u0131c\u0131 baz\u0131nda kurar, bu da `sudo` yetkilerine ihtiya\u00e7 duymadan paketleri y\u00f6netmenize olanak tan\u0131r.<\/p>\n<p><strong>NVM Kurulum Ad\u0131mlar\u0131:<\/strong><\/p>\n<ol>\n<li>Resmi NVM GitHub deposundan kurulum beti\u011fini indirin ve \u00e7al\u0131\u015ft\u0131r\u0131n. En g\u00fcncel s\u00fcr\u00fcm numaras\u0131n\u0131 kontrol ederek komutu g\u00fcncelleyebilirsiniz:<br \/>\n    <br \/><code>curl -o- https:\/\/raw.githubusercontent.com\/nvm-sh\/nvm\/v0.39.1\/install.sh | bash<\/code><\/li>\n<li>Kurulumdan sonra kabuk (shell) yap\u0131land\u0131rmas\u0131n\u0131 yeniden y\u00fcklemek i\u00e7in terminali kapat\u0131p a\u00e7\u0131n veya \u015fu komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<br \/>\n    <br \/><code>source ~\/.bashrc<\/code><\/li>\n<li>NVM ile mevcut en son kararl\u0131 (LTS) Node.js s\u00fcr\u00fcm\u00fcn\u00fc kurun:<br \/>\n    <br \/><code>nvm install --lts<\/code><\/li>\n<li>Kurulan s\u00fcr\u00fcm\u00fc varsay\u0131lan olarak ayarlay\u0131n:<br \/>\n    <br \/><code>nvm use --lts<\/code><\/li>\n<li>Kurulumu do\u011frulamak i\u00e7in `node -v` ve `npm -v` komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/li>\n<\/ol>\n<table>\n<thead>\n<tr>\n<th>\u00d6zellik<\/th>\n<th>Paket Y\u00f6neticisi (APT\/YUM)<\/th>\n<th>Node Version Manager (NVM)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Kurulum Seviyesi<\/strong><\/td>\n<td>Sistem geneli (Global)<\/td>\n<td>Kullan\u0131c\u0131ya \u00f6zel (User-specific)<\/td>\n<\/tr>\n<tr>\n<td><strong>S\u00fcr\u00fcm Y\u00f6netimi<\/strong><\/td>\n<td>Tek s\u00fcr\u00fcm, g\u00fcncelleme i\u00e7in depo de\u011fi\u015fikli\u011fi gerekir.<\/td>\n<td>Birden fazla s\u00fcr\u00fcm kurulabilir ve kolayca ge\u00e7i\u015f yap\u0131labilir.<\/td>\n<\/tr>\n<tr>\n<td><strong>Gerekli Yetki<\/strong><\/td>\n<td>`sudo` (root) yetkisi gerektirir.<\/td>\n<td>`sudo` yetkisi gerektirmez (ilk kurulum hari\u00e7).<\/td>\n<\/tr>\n<tr>\n<td><strong>Esneklik<\/strong><\/td>\n<td>D\u00fc\u015f\u00fck. Farkl\u0131 projeler i\u00e7in farkl\u0131 s\u00fcr\u00fcmler kullan\u0131lamaz.<\/td>\n<td>Y\u00fcksek. Proje baz\u0131nda Node.js s\u00fcr\u00fcm\u00fc belirlenebilir.<\/td>\n<\/tr>\n<tr>\n<td><strong>\u00d6nerilen Kullan\u0131m<\/strong><\/td>\n<td>Tek ve kararl\u0131 bir s\u00fcr\u00fcm\u00fcn yeterli oldu\u011fu basit sunucular.<\/td>\n<td>Geli\u015ftirme ortamlar\u0131 ve birden fazla uygulama bar\u0131nd\u0131ran sunucular.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"Nodejs_Uygulamasini_Sunucuda_Calistirmak_ve_Yonetmek\"><\/span>Node.js Uygulamas\u0131n\u0131 Sunucuda \u00c7al\u0131\u015ft\u0131rmak ve Y\u00f6netmek<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Node.js&#8217;i kurduktan sonraki ad\u0131m, uygulaman\u0131z\u0131 sunucuda s\u00fcrekli ve kararl\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131rmakt\u0131r. Terminalde `node app.js` komutunu \u00e7al\u0131\u015ft\u0131rmak geli\u015ftirme i\u00e7in yeterli olsa da, \u00fcretim ortam\u0131 i\u00e7in asla uygun de\u011fildir. Terminal kapand\u0131\u011f\u0131nda veya sunucu yeniden ba\u015flad\u0131\u011f\u0131nda uygulaman\u0131z duracakt\u0131r. Bu sorunu \u00e7\u00f6zmek i\u00e7in bir s\u00fcre\u00e7 y\u00f6neticisi (process manager) ve gelen istekleri uygulamaya y\u00f6nlendirmek i\u00e7in bir ters proxy (reverse proxy) kullan\u0131l\u0131r.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"PM2_Uretim_Ortami_Icin_Surec_Yoneticisi\"><\/span>PM2: \u00dcretim Ortam\u0131 \u0130\u00e7in S\u00fcre\u00e7 Y\u00f6neticisi<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>PM2, Node.js uygulamalar\u0131 i\u00e7in pop\u00fcler bir s\u00fcre\u00e7 y\u00f6neticisidir. Uygulaman\u0131z\u0131n \u00e7\u00f6kmesi durumunda otomatik olarak yeniden ba\u015flat\u0131r, sunucu a\u00e7\u0131l\u0131\u015f\u0131nda uygulaman\u0131z\u0131 ba\u015flatacak \u015fekilde yap\u0131land\u0131r\u0131labilir, uygulama performans\u0131n\u0131 izlemenize olanak tan\u0131r ve i\u015flemci \u00e7ekirdeklerini verimli kullanmak i\u00e7in k\u00fcmeleme (clustering) modu sunar.<\/p>\n<p><strong>PM2 Kurulumu ve Kullan\u0131m\u0131:<\/strong><\/p>\n<ol>\n<li>PM2&#8217;yi npm kullanarak global olarak kurun:<br \/>\n    <br \/><code>sudo npm install pm2 -g<\/code><\/li>\n<li>Uygulaman\u0131z\u0131 PM2 ile ba\u015flat\u0131n:<br \/>\n    <br \/><code>pm2 start app.js --name \"my-app\"<\/code><\/li>\n<li>PM2 ile \u00e7al\u0131\u015fan uygulamalar\u0131 listeleyin:<br \/>\n    <br \/><code>pm2 list<\/code><\/li>\n<li>Sunucu yeniden ba\u015flad\u0131\u011f\u0131nda PM2&#8217;nin uygulamalar\u0131n\u0131z\u0131 otomatik olarak ba\u015flatmas\u0131 i\u00e7in ba\u015flang\u0131\u00e7 beti\u011fi olu\u015fturun:<br \/>\n    <br \/><code>pm2 startup<\/code><\/li>\n<li>Mevcut PM2 s\u00fcre\u00e7 listesini kaydedin:<br \/>\n    <br \/><code>pm2 save<\/code><\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Reverse_Proxy_Olarak_Nginx_Yapilandirmasi\"><\/span>Reverse Proxy Olarak Nginx Yap\u0131land\u0131rmas\u0131<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Node.js uygulaman\u0131z genellikle `localhost:3000` gibi yerel bir port \u00fczerinde \u00e7al\u0131\u015f\u0131r. D\u0131\u015far\u0131dan gelen 80 (HTTP) ve 443 (HTTPS) portlar\u0131na gelen istekleri do\u011frudan Node.js uygulamas\u0131na y\u00f6nlendirmek g\u00fcvenlik ve performans a\u00e7\u0131s\u0131ndan verimli de\u011fildir. Bunun yerine Nginx veya Apache gibi bir web sunucusunu ters proxy olarak kullanmak en iyi pratiktir. Nginx, gelen istekleri al\u0131r ve arka planda \u00e7al\u0131\u015fan Node.js uygulaman\u0131za iletir. Bu yap\u0131, SSL sertifikalar\u0131n\u0131 y\u00f6netmeyi, statik dosyalar\u0131 (CSS, JS, resimler) daha verimli sunmay\u0131 ve birden fazla uygulamay\u0131 ayn\u0131 sunucuda bar\u0131nd\u0131rmay\u0131 kolayla\u015ft\u0131r\u0131r. Web sunucular\u0131n\u0131n performans\u0131 hakk\u0131nda daha fazla bilgi edinmek, bu karar\u0131 verirken size yard\u0131mc\u0131 olabilir; \u00f6rne\u011fin, <a href=\"https:\/\/sunucun.com.tr\/blog\/nginx-vs-apache-hangi-web-sunucusu-daha-hizli\/\" target=\"_blank\" rel=\"follow\">Nginx ve Apache aras\u0131ndaki h\u0131z farklar\u0131n\u0131<\/a> incelemek faydal\u0131 olacakt\u0131r.<\/p>\n<p><strong>\u00d6rnek Nginx Yap\u0131land\u0131rmas\u0131:<\/strong><\/p>\n<p><code>\/etc\/nginx\/sites-available\/my-app<\/code> ad\u0131nda bir dosya olu\u015fturun ve i\u00e7ine a\u015fa\u011f\u0131daki gibi bir yap\u0131land\u0131rma ekleyin:<\/p>\n<pre><code>server {\n    listen 80;\n    server_name example.com www.example.com;\n\n    location \/ {\n        proxy_pass http:\/\/localhost:3000; # Node.js uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 port\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection 'upgrade';\n        proxy_set_header Host $host;\n        proxy_cache_bypass $http_upgrade;\n    }\n}<\/code><\/pre>\n<p><\/p>\n<figure class=\"wp-block-image aligncenter size-medium is-resized\">\n  <img src=\"https:\/\/sunucun.com.tr\/blog\/wp-content\/uploads\/2026\/02\/text2-nodejs-sunucu-kurulumu-modern-web-uygulamalari-icin-altyapi.png\" class=\"size-medium aligncenter\" style=\"width:100%;\" alt=\"Node.js Sunucu Kurulumu s\u00fcrecinde Nginx gibi bir ters proxy, gelen istekleri y\u00f6neterek g\u00fcvenli\u011fi art\u0131r\u0131r\" title=\"Ters Proxy ile Uygulama Trafik Y\u00f6netimi\" loading=\"lazy\" decoding=\"async\"><figcaption>\n    Node.js Sunucu Kurulumu s\u00fcrecinde Nginx gibi bir ters proxy, gelen istekleri y\u00f6neterek g\u00fcvenli\u011fi art\u0131r\u0131r<br \/>\n  <\/figcaption><\/figure>\n<p><\/p>\n<p>Bu yap\u0131land\u0131rmay\u0131 etkinle\u015ftirdikten ve Nginx&#8217;i yeniden ba\u015flatt\u0131ktan sonra, `example.com` adresine gelen t\u00fcm istekler 3000 portunda \u00e7al\u0131\u015fan Node.js uygulaman\u0131za y\u00f6nlendirilecektir. Bu, uygulaman\u0131z\u0131 d\u0131\u015f d\u00fcnyaya g\u00fcvenli ve \u00f6l\u00e7eklenebilir bir \u015fekilde a\u00e7man\u0131n standart yoludur.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Node.js Sunucu Kurulumu: Modern Web Uygulamalar\u0131 \u0130\u00e7in Altyap\u0131. Geli\u015fen web teknolojileri, sunucu taraf\u0131nda daha h\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve verimli \u00e7\u00f6z\u00fcmlere olan ihtiyac\u0131 art\u0131rm\u0131\u015ft\u0131r. \u0130\u015fte bu noktada Node.js, JavaScript&#8217;i sunucu taraf\u0131nda \u00e7al\u0131\u015ft\u0131rabilen g\u00fc\u00e7l\u00fc bir \u00e7al\u0131\u015fma zaman\u0131 ortam\u0131 (runtime environment) olarak \u00f6ne \u00e7\u0131kmaktad\u0131r. Google Chrome&#8217;un V8 JavaScript motoru \u00fczerine in\u015fa edilen Node.js, olay g\u00fcd\u00fcml\u00fc (event-driven) ve engellemeyen (non-blocking&hellip;<\/p>\n","protected":false},"author":1,"featured_media":20398,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[1520],"tags":[],"class_list":["post-20401","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/posts\/20401","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/comments?post=20401"}],"version-history":[{"count":1,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/posts\/20401\/revisions"}],"predecessor-version":[{"id":20402,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/posts\/20401\/revisions\/20402"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/media\/20398"}],"wp:attachment":[{"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/media?parent=20401"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/categories?post=20401"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sunucun.com.tr\/blog\/wp-json\/wp\/v2\/tags?post=20401"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}