{"id":37619,"date":"2026-01-10T18:40:42","date_gmt":"2026-01-10T15:40:42","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37619"},"modified":"2026-01-10T18:40:42","modified_gmt":"2026-01-10T15:40:42","slug":"meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/","title":{"rendered":"Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>Web geli\u015ftirme d\u00fcnyas\u0131 s\u00fcrekli evrim ge\u00e7irirken, geli\u015ftiricilere h\u0131zl\u0131 ve verimli \u00e7\u00f6z\u00fcmler sunan ara\u00e7lar b\u00fcy\u00fck \u00f6nem ta\u015f\u0131maktad\u0131r. Meteor.js, tam y\u0131\u011f\u0131n (full-stack) JavaScript platformu olarak, web ve mobil uygulamalar\u0131 h\u0131zl\u0131ca geli\u015ftirmek i\u00e7in pop\u00fcler bir se\u00e7enektir. Ger\u00e7ek zamanl\u0131 veri senkronizasyonu, kolay paket y\u00f6netimi ve hem istemci hem de sunucu taraf\u0131nda JavaScript kullanma yetene\u011fi sayesinde geli\u015ftiricilerin g\u00f6zdesi haline gelmi\u015ftir. Bu makalede, bir Meteor.js uygulamas\u0131n\u0131 eski ama kararl\u0131 bir i\u015fletim sistemi olan Ubuntu 14.04 LTS (Trusty Tahr) \u00fczerinde Nginx web sunucusu kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131m\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<p>Ubuntu 14.04, uzun s\u00fcreli destek (LTS) sa\u011flayan bir s\u00fcr\u00fcm olmas\u0131na ra\u011fmen, g\u00fcncel g\u00fcvenlik g\u00fcncellemelerini art\u0131k almamaktad\u0131r. Bu nedenle, bu rehber genellikle eski sistemlerde veya belirli gereksinimleri olan ortamlarda \u00e7al\u0131\u015fanlar i\u00e7in bir referans niteli\u011findedir. Ancak, temel da\u011f\u0131t\u0131m prensipleri daha yeni Ubuntu s\u00fcr\u00fcmleri i\u00e7in de ge\u00e7erlidir. Nginx ise, y\u00fcksek performansl\u0131, g\u00fcvenilir ve esnek bir web sunucusu ve ters proxy (reverse proxy) olarak, Meteor uygulamam\u0131z\u0131n \u00f6n\u00fcnde durarak trafi\u011fi y\u00f6netmek ve ek g\u00fcvenlik katmanlar\u0131 sa\u011flamak i\u00e7in ideal bir se\u00e7imdir.<\/p>\n<p>Bu rehberin amac\u0131, Meteor uygulaman\u0131z\u0131 bir \u00fcretim ortam\u0131nda \u00e7al\u0131\u015f\u0131r hale getirmek i\u00e7in gerekli t\u00fcm ad\u0131mlar\u0131, sunucu haz\u0131rl\u0131\u011f\u0131ndan uygulama da\u011f\u0131t\u0131m\u0131na ve Nginx yap\u0131land\u0131rmas\u0131na kadar ayr\u0131nt\u0131l\u0131 bir \u015fekilde a\u00e7\u0131klamakt\u0131r.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Bu rehbere ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki maddelerin haz\u0131r oldu\u011fundan emin olmal\u0131s\u0131n\u0131z:<\/p>\n<ul>\n<li><strong>Ubuntu 14.04 Sunucusu:<\/strong> Root veya sudo yetkilerine sahip bir Ubuntu 14.04 sunucusu. (Daha yeni Ubuntu s\u00fcr\u00fcmleri i\u00e7in ad\u0131mlar benzer olsa da, paket versiyonlar\u0131 farkl\u0131l\u0131k g\u00f6sterebilir.)<\/li>\n<li><strong>Alan Ad\u0131 (Domain Name):<\/strong> Uygulaman\u0131z i\u00e7in yap\u0131land\u0131r\u0131lm\u0131\u015f bir alan ad\u0131 (\u00f6rne\u011fin, <code>ornekuygulama.com<\/code>) ve bu alan ad\u0131n\u0131n sunucunuzun IP adresine y\u00f6nlendirilmi\u015f olmas\u0131.<\/li>\n<li><strong>Meteor.js Uygulamas\u0131:<\/strong> Da\u011f\u0131t\u0131ma haz\u0131r bir Meteor.js uygulaman\u0131z\u0131n olmas\u0131. Uygulaman\u0131z\u0131n \u00fcretim ortam\u0131na uygun olarak yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun (\u00f6rne\u011fin, g\u00fcvenlik kurallar\u0131, API anahtarlar\u0131 vb.).<\/li>\n<li><strong>Temel Linux Bilgisi:<\/strong> Komut sat\u0131r\u0131 kullan\u0131m\u0131 ve temel Linux komutlar\u0131na a\u015final\u0131k.<\/li>\n<li><strong>SSH Eri\u015fimi:<\/strong> Sunucunuza SSH \u00fczerinden eri\u015fim.<\/li>\n<\/ul>\n<h3>Sunucu Ortam\u0131n\u0131 Haz\u0131rlama<\/h3>\n<p>Meteor.js uygulaman\u0131z\u0131 \u00e7al\u0131\u015ft\u0131rabilmek i\u00e7in sunucunuzda baz\u0131 temel ara\u00e7lar\u0131n ve hizmetlerin y\u00fckl\u00fc olmas\u0131 gerekir. Bu b\u00f6l\u00fcmde, Ubuntu 14.04 sunucunuzu bu gereksinimleri kar\u015f\u0131layacak \u015fekilde yap\u0131land\u0131raca\u011f\u0131z.<\/p>\n<h4>Sistem G\u00fcncellemesi ve Temel Paketlerin Kurulumu<\/h4>\n<p>\u0130lk ad\u0131m olarak, sunucunuzdaki paket listesini g\u00fcncelleyelim ve mevcut paketleri y\u00fckseltelim. Ayr\u0131ca, derleme ara\u00e7lar\u0131 ve di\u011fer yard\u0131mc\u0131 paketleri de kural\u0131m.<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\nsudo apt-get upgrade -y\nsudo apt-get install -y build-essential curl git<\/code><\/pre>\n<p><code>build-essential<\/code> paketi, Node.js ve di\u011fer ba\u011f\u0131ml\u0131l\u0131klar\u0131 derlemek i\u00e7in gerekli ara\u00e7lar\u0131 i\u00e7erir. <code>curl<\/code> ve <code>git<\/code> ise genellikle \u00e7e\u015fitli yaz\u0131l\u0131mlar\u0131 indirmek ve depolardan \u00e7ekmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h4>Node.js ve NPM Kurulumu (NVM ile)<\/h4>\n<p>Ubuntu 14.04&#8217;\u00fcn varsay\u0131lan depolar\u0131ndaki Node.js s\u00fcr\u00fcm\u00fc, \u00e7o\u011fu Meteor uygulamas\u0131 i\u00e7in \u00e7ok eski olabilir. Bu nedenle, Node Version Manager (NVM) kullanarak daha g\u00fcncel ve Meteor uygulaman\u0131zla uyumlu bir Node.js s\u00fcr\u00fcm\u00fcn\u00fc kurmak en iyi yakla\u015f\u0131md\u0131r. NVM, ayn\u0131 sunucuda birden fazla Node.js s\u00fcr\u00fcm\u00fcn\u00fc y\u00f6netmenizi sa\u011flar.<\/p>\n<p>NVM&#8217;i kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">curl -o- https:\/\/raw.githubusercontent.com\/nvm-sh\/nvm\/v0.39.1\/install.sh | bash<\/code><\/pre>\n<p>Bu komut, NVM&#8217;in en son kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc y\u00fckleyecektir. Kurulumdan sonra, terminali kapat\u0131p tekrar a\u00e7man\u0131z veya a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rman\u0131z gerekebilir:<\/p>\n<pre><code class=\"language-bash\">source ~\/.profile<\/code><\/pre>\n<p>NVM&#8217;in do\u011fru \u015fekilde kuruldu\u011funu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">nvm --version<\/code><\/pre>\n<p>\u015eimdi, Meteor uygulaman\u0131z\u0131n gerektirdi\u011fi Node.js s\u00fcr\u00fcm\u00fcn\u00fc NVM ile kural\u0131m. Meteor&#8217;un farkl\u0131 s\u00fcr\u00fcmleri farkl\u0131 Node.js s\u00fcr\u00fcmleriyle uyumludur. \u00d6rne\u011fin, Meteor 1.4 i\u00e7in Node.js 4.x, Meteor 1.6 i\u00e7in Node.js 8.x ve daha yeni Meteor s\u00fcr\u00fcmleri i\u00e7in Node.js 12.x veya \u00fczeri gerekebilir. Uygulaman\u0131z\u0131n <code>package.json<\/code> dosyas\u0131nda veya geli\u015ftirme ortam\u0131n\u0131zda hangi Node.js s\u00fcr\u00fcm\u00fcn\u00fc kulland\u0131\u011f\u0131n\u0131 kontrol edin. Bu rehberde, \u00f6rnek olarak Node.js 6.x s\u00fcr\u00fcm\u00fcn\u00fc kuraca\u011f\u0131z, bu bir\u00e7ok eski Meteor s\u00fcr\u00fcm\u00fc i\u00e7in iyi bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r:<\/p>\n<pre><code class=\"language-bash\">nvm install 6.17.1 # Meteor uygulaman\u0131z\u0131n gerektirdi\u011fi s\u00fcr\u00fcme g\u00f6re de\u011fi\u015ftirin\nnvm use 6.17.1\nnvm alias default 6.17.1<\/code><\/pre>\n<p>Bu komutlar, Node.js 6.17.1 s\u00fcr\u00fcm\u00fcn\u00fc kurar, aktif hale getirir ve terminal her a\u00e7\u0131ld\u0131\u011f\u0131nda varsay\u0131lan olarak bu s\u00fcr\u00fcm\u00fcn kullan\u0131lmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Kurulumu do\u011frulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">node -v\nnpm -v<\/code><\/pre>\n<h4>MongoDB Kurulumu<\/h4>\n<p>Meteor.js uygulamalar\u0131 verilerini depolamak i\u00e7in genellikle MongoDB kullan\u0131r. \u00dcretim ortam\u0131nda, Meteor&#8217;un kendi i\u00e7inde gelen MongoDB&#8217;yi kullanmak yerine, ayr\u0131 bir MongoDB sunucusu kurmak daha g\u00fcvenli ve performansl\u0131d\u0131r. Ubuntu 14.04 i\u00e7in MongoDB 3.2 veya 3.4 s\u00fcr\u00fcmlerini kurmak en yayg\u0131n yakla\u015f\u0131md\u0131r.<\/p>\n<p>\u0130lk olarak, MongoDB&#8217;nin genel anahtar\u0131n\u0131 sisteme ekleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt-key adv --keyserver hkp:\/\/keyserver.ubuntu.com:80 --recv EA312927<\/code><\/pre>\n<p>Ard\u0131ndan, MongoDB deposunu <code>sources.list.d<\/code> dizinine ekleyin. MongoDB 3.2 i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">echo \"deb http:\/\/repo.mongodb.org\/apt\/ubuntu trusty\/mongodb-org\/3.2 multiverse\" | sudo tee \/etc\/apt\/sources.list.d\/mongodb-org-3.2.list<\/code><\/pre>\n<p>Veya MongoDB 3.4 i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">echo \"deb http:\/\/repo.mongodb.org\/apt\/ubuntu trusty\/mongodb-org\/3.4 multiverse\" | sudo tee \/etc\/apt\/sources.list.d\/mongodb-org-3.4.list<\/code><\/pre>\n<p>Depoyu ekledikten sonra, paket listesini g\u00fcncelleyin ve MongoDB&#8217;yi kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\nsudo apt-get install -y mongodb-org<\/code><\/pre>\n<p>MongoDB servisini ba\u015flat\u0131n ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo service mongod start\nsudo update-rc.d mongod defaults<\/code><\/pre>\n<p>MongoDB&#8217;nin durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo service mongod status<\/code><\/pre>\n<p>MongoDB&#8217;nin varsay\u0131lan olarak sadece <code>localhost<\/code> \u00fczerinden eri\u015filebilir olmas\u0131 g\u00fcvenlik a\u00e7\u0131s\u0131ndan \u00f6nemlidir. E\u011fer uygulaman\u0131z ve MongoDB ayn\u0131 sunucudaysa, bu ayar yeterlidir. E\u011fer farkl\u0131 sunuculardaysalar, MongoDB yap\u0131land\u0131rma dosyas\u0131n\u0131 (<code>\/etc\/mongod.conf<\/code>) d\u00fczenleyerek <code>bindIp<\/code> ayar\u0131n\u0131 uygulaman\u0131z\u0131n bulundu\u011fu sunucunun IP adresine veya <code>0.0.0.0<\/code> (t\u00fcm aray\u00fczlerden eri\u015fim, dikkatli kullan\u0131lmal\u0131) olarak ayarlaman\u0131z gerekebilir. \u015eimdilik <code>localhost<\/code> olarak b\u0131rakal\u0131m.<\/p>\n<h4>PM2 Kurulumu<\/h4>\n<p>PM2 (Process Manager 2), Node.js uygulamalar\u0131n\u0131 \u00fcretim ortam\u0131nda canl\u0131 tutmak, otomatik yeniden ba\u015flatmak ve izlemek i\u00e7in kullan\u0131lan bir ara\u00e7t\u0131r. Meteor uygulamam\u0131z\u0131n bir \u00e7\u00f6kme durumunda veya sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak tekrar ba\u015flamas\u0131n\u0131 sa\u011flamak i\u00e7in PM2&#8217;yi kullanaca\u011f\u0131z.<\/p>\n<pre><code class=\"language-bash\">npm install -g pm2<\/code><\/pre>\n<p>PM2&#8217;yi sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in yap\u0131land\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">pm2 startup systemd # Veya ubuntu 14.04 i\u00e7in 'pm2 startup ubuntu' daha uygun olabilir.\n                    # PM2 \u00e7\u0131kt\u0131s\u0131ndaki komutu kopyalay\u0131p yap\u0131\u015ft\u0131r\u0131n.<\/code><\/pre>\n<p>Bu komut, PM2&#8217;nin sunucu her yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda uygulamalar\u0131n\u0131z\u0131 tekrar ba\u015flatmas\u0131n\u0131 sa\u011flayacak bir ba\u015flang\u0131\u00e7 beti\u011fi olu\u015fturacakt\u0131r.<\/p>\n<h4>Nginx Kurulumu<\/h4>\n<p>Nginx, Meteor uygulamam\u0131z\u0131n \u00f6n\u00fcnde bir ters proxy g\u00f6revi g\u00f6recek, gelen HTTP isteklerini Meteor uygulamam\u0131za y\u00f6nlendirecek ve statik dosyalar\u0131 daha verimli bir \u015fekilde sunacakt\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install -y nginx<\/code><\/pre>\n<p>Nginx servisini ba\u015flat\u0131n ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo service nginx start\nsudo update-rc.d nginx defaults<\/code><\/pre>\n<p>Nginx&#8217;in do\u011fru \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 test etmek i\u00e7in sunucunuzun IP adresini web taray\u0131c\u0131n\u0131zda a\u00e7\u0131n. &#8220;Welcome to nginx!&#8221; mesaj\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>Meteor Uygulamas\u0131n\u0131 \u00dcretim Ortam\u0131na Haz\u0131rlama<\/h3>\n<p>Meteor uygulaman\u0131z\u0131 sunucuya da\u011f\u0131tmadan \u00f6nce, \u00fcretim ortam\u0131nda \u00e7al\u0131\u015facak \u015fekilde derlemeniz gerekir. Bu ad\u0131mlar genellikle yerel geli\u015ftirme makinenizde yap\u0131l\u0131r.<\/p>\n<h4>Meteor Uygulamas\u0131n\u0131 Derleme<\/h4>\n<p>Meteor uygulamas\u0131, <code>meteor build<\/code> komutu kullan\u0131larak da\u011f\u0131t\u0131ma haz\u0131r bir Node.js uygulamas\u0131 paketine d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr. Uygulaman\u0131z\u0131n k\u00f6k dizininde a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">meteor build --architecture os.linux.x86_64 --server-only --directory ..\/deploy --verbose<\/code><\/pre>\n<p>Bu komutun anlam\u0131:<br \/>\n*   <code>--architecture os.linux.x86_64<\/code>: Uygulaman\u0131n 64-bit Linux mimarisi i\u00e7in derlenmesini sa\u011flar. Bu \u00f6nemlidir \u00e7\u00fcnk\u00fc sunucunuz genellikle bu mimariye sahiptir.<br \/>\n*   <code>--server-only<\/code>: Yaln\u0131zca sunucu taraf\u0131 kodunu derler ve istemci taraf\u0131 kodunu \u00e7\u0131kar\u0131r. Bu, daha k\u00fc\u00e7\u00fck bir paket boyutu ve daha h\u0131zl\u0131 derleme sa\u011flar.<br \/>\n*   <code>--directory ..\/deploy<\/code>: Derlenmi\u015f paketin <code>deploy<\/code> ad\u0131nda bir dizine kaydedilmesini sa\u011flar. Bu dizin, uygulaman\u0131z\u0131n k\u00f6k dizininin bir \u00fcst seviyesinde olu\u015fturulacakt\u0131r.<br \/>\n*   <code>--verbose<\/code>: Derleme s\u00fcrecini daha detayl\u0131 g\u00f6sterir.<\/p>\n<p>Derleme i\u015flemi tamamland\u0131\u011f\u0131nda, <code>..\/deploy\/bundle<\/code> dizini alt\u0131nda uygulaman\u0131z\u0131n da\u011f\u0131t\u0131ma haz\u0131r paketi bulunacakt\u0131r. Bu paketin i\u00e7inde bir <code>programs\/server<\/code> dizini ve bir <code>main.js<\/code> dosyas\u0131 bulunur.<\/p>\n<h4>Ba\u011f\u0131ml\u0131l\u0131klar\u0131 Y\u00fckleme<\/h4>\n<p>Derlenmi\u015f <code>bundle<\/code> dizini i\u00e7indeki <code>programs\/server<\/code> dizininde, uygulaman\u0131z\u0131n sunucu taraf\u0131 ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00fcklemeniz gerekir. Bu ad\u0131m\u0131, paketi sunucuya aktard\u0131ktan sonra sunucu \u00fczerinde de yapabilirsiniz, ancak yerelde yapmak, olas\u0131 ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 daha erken tespit etmenizi sa\u011flayabilir.<\/p>\n<pre><code class=\"language-bash\">cd ..\/deploy\/bundle\/programs\/server\nnpm install<\/code><\/pre>\n<p>Bu komut, <code>package.json<\/code> dosyas\u0131nda listelenen t\u00fcm Node.js ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00fckleyecektir.<\/p>\n<h3>Meteor Uygulamas\u0131n\u0131 Sunucuya Aktarma<\/h3>\n<p>Derlenmi\u015f paketi ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00fckledikten sonra, bu paketi SSH \u00fczerinden sunucunuza aktarman\u0131z gerekir. <code>scp<\/code> (secure copy) komutu bunun i\u00e7in idealdir.<\/p>\n<p>Yerel makinenizden sunucuya aktar\u0131n:<\/p>\n<pre><code class=\"language-bash\">scp -r ..\/deploy\/bundle user@your_server_ip:\/home\/user\/your_app_name<\/code><\/pre>\n<p>Burada:<br \/>\n*   <code>user<\/code>: Sunucunuzdaki kullan\u0131c\u0131 ad\u0131n\u0131z.<br \/>\n*   <code>your_server_ip<\/code>: Sunucunuzun IP adresi.<br \/>\n*   <code>\/home\/user\/your_app_name<\/code>: Uygulaman\u0131z\u0131 sunucuda depolamak istedi\u011finiz dizin (\u00f6rne\u011fin, <code>\/var\/www\/your_app_name<\/code> gibi bir dizin de kullanabilirsiniz).<\/p>\n<p>Sunucuya giri\u015f yap\u0131n ve aktar\u0131lan paketin do\u011fru yerde oldu\u011fundan emin olun:<\/p>\n<pre><code class=\"language-bash\">ssh user@your_server_ip\nls \/home\/user\/your_app_name<\/code><\/pre>\n<p><code>bundle<\/code> dizinini g\u00f6rmelisiniz.<\/p>\n<h3>Meteor Uygulamas\u0131n\u0131 Sunucuda \u00c7al\u0131\u015ft\u0131rma<\/h3>\n<p>\u015eimdi, uygulamam\u0131z\u0131 sunucuda PM2 kullanarak \u00e7al\u0131\u015ft\u0131rabiliriz.<\/p>\n<h4>Uygulama Ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 Kurma (Sunucu \u00dczerinde)<\/h4>\n<p>E\u011fer bu ad\u0131m\u0131 yerel makinenizde yapmad\u0131ysan\u0131z, \u015fimdi sunucu \u00fczerinde yapman\u0131z gerekecektir.<\/p>\n<pre><code class=\"language-bash\">cd \/home\/user\/your_app_name\/bundle\/programs\/server\nnpm install<\/code><\/pre>\n<p>Bu ad\u0131m, Meteor uygulaman\u0131z\u0131n Node.js ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 sunucu ortam\u0131nda y\u00fckler.<\/p>\n<h4>Uygulamay\u0131 PM2 ile Ba\u015flatma<\/h4>\n<p>Meteor uygulaman\u0131z\u0131 PM2 ile ba\u015flatmak i\u00e7in <code>MONGO_URL<\/code>, <code>ROOT_URL<\/code> ve <code>PORT<\/code> gibi ortam de\u011fi\u015fkenlerini ayarlaman\u0131z gerekir.<\/p>\n<p>*   <code>MONGO_URL<\/code>: Uygulaman\u0131z\u0131n ba\u011flanaca\u011f\u0131 MongoDB sunucusunun URL&#8217;si. Genellikle <code>mongodb:\/\/localhost:27017\/your_database_name<\/code> \u015feklindedir. <code>your_database_name<\/code> k\u0131sm\u0131n\u0131 uygulaman\u0131z\u0131n kullanaca\u011f\u0131 veritaban\u0131 ad\u0131yla de\u011fi\u015ftirin.<br \/>\n*   <code>ROOT_URL<\/code>: Uygulaman\u0131z\u0131n d\u0131\u015far\u0131dan eri\u015filece\u011fi URL. \u00d6rne\u011fin, <code>http:\/\/yourdomain.com<\/code>. E\u011fer SSL kullanacaksan\u0131z <code>https:\/\/yourdomain.com<\/code> olarak ayarlay\u0131n.<br \/>\n*   <code>PORT<\/code>: Meteor uygulamas\u0131n\u0131n dinleyece\u011fi port. Nginx&#8217;in bu porta y\u00f6nlendirme yapaca\u011f\u0131 bir port se\u00e7in (\u00f6rne\u011fin, 3000 veya 8080).<\/p>\n<p>A\u015fa\u011f\u0131daki komutu kullanarak uygulaman\u0131z\u0131 PM2 ile ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">cd \/home\/user\/your_app_name\/bundle\npm2 start main.js --name \"my-meteor-app\" \\\n  --env \"MONGO_URL=mongodb:\/\/localhost:27017\/your_database_name\" \\\n  --env \"ROOT_URL=http:\/\/yourdomain.com\" \\\n  --env \"PORT=3000\"<\/code><\/pre>\n<p>Burada:<br \/>\n*   <code>my-meteor-app<\/code>: PM2&#8217;de uygulaman\u0131za verece\u011finiz isim.<br \/>\n*   <code>main.js<\/code>: Derlenmi\u015f paketin k\u00f6k dizinindeki ana ba\u015flang\u0131\u00e7 dosyas\u0131.<\/p>\n<p>Uygulaman\u0131z\u0131n durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">pm2 list\npm2 logs my-meteor-app<\/code><\/pre>\n<p>E\u011fer her \u015fey yolundaysa, uygulaman\u0131z\u0131n <code>online<\/code> durumda oldu\u011funu ve loglarda herhangi bir hata olmad\u0131\u011f\u0131n\u0131 g\u00f6rmelisiniz. Uygulaman\u0131n sorunsuz \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olduktan sonra, PM2 yap\u0131land\u0131rmas\u0131n\u0131 kaydedin:<\/p>\n<pre><code class=\"language-bash\">pm2 save<\/code><\/pre>\n<p>Bu komut, sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda PM2&#8217;nin uygulamalar\u0131n\u0131z\u0131 otomatik olarak tekrar ba\u015flatmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Nginx Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Meteor uygulamam\u0131z art\u0131k \u00e7al\u0131\u015f\u0131yor, ancak d\u0131\u015far\u0131dan eri\u015filebilir de\u011fil. Nginx&#8217;i bir ters proxy olarak yap\u0131land\u0131rarak gelen istekleri Meteor uygulamam\u0131z\u0131n dinledi\u011fi porta y\u00f6nlendirmemiz gerekiyor.<\/p>\n<h4>Nginx Sanal Host Dosyas\u0131 Olu\u015fturma<\/h4>\n<p>Nginx yap\u0131land\u0131rma dosyalar\u0131 <code>\/etc\/nginx\/sites-available\/<\/code> dizininde bulunur. Yeni bir yap\u0131land\u0131rma dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/yourdomain.com<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki yap\u0131land\u0131rmay\u0131 yap\u0131\u015ft\u0131r\u0131n. <code>yourdomain.com<\/code> ve <code>www.yourdomain.com<\/code> k\u0131s\u0131mlar\u0131n\u0131 kendi alan ad\u0131n\u0131zla, <code>http:\/\/localhost:3000<\/code> k\u0131sm\u0131n\u0131 ise Meteor uygulaman\u0131z\u0131n dinledi\u011fi portla de\u011fi\u015ftirin.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    server_name yourdomain.com www.yourdomain.com;\n\n    location \/ {\n        proxy_pass http:\/\/localhost:3000;\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_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_read_timeout 900; # Meteor uygulamalar\u0131 i\u00e7in daha uzun bir timeout de\u011feri faydal\u0131 olabilir.\n    }\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma \u015funlar\u0131 yapar:<br \/>\n*   <code>listen 80<\/code>: Nginx&#8217;in 80 numaral\u0131 porttan (HTTP) gelen istekleri dinlemesini sa\u011flar.<br \/>\n*   <code>server_name yourdomain.com www.yourdomain.com<\/code>: Bu sunucu blo\u011funun hangi alan adlar\u0131 i\u00e7in ge\u00e7erli oldu\u011funu belirtir.<br \/>\n*   <code>location \/<\/code>: T\u00fcm gelen istekleri yakalar.<br \/>\n*   <code>proxy_pass http:\/\/localhost:3000<\/code>: Gelen istekleri <code>http:\/\/localhost:3000<\/code> adresinde \u00e7al\u0131\u015fan Meteor uygulamam\u0131za y\u00f6nlendirir.<br \/>\n*   <code>proxy_set_header ...<\/code>: Bu sat\u0131rlar, orijinal istemci bilgilerini (IP adresi, host vb.) Meteor uygulamas\u0131na iletmek i\u00e7in HTTP ba\u015fl\u0131klar\u0131n\u0131 ayarlar. Bu, uygulaman\u0131z\u0131n ger\u00e7ek istemci IP adresini g\u00f6rmesi ve do\u011fru y\u00f6nlendirmeleri yapmas\u0131 i\u00e7in \u00f6nemlidir.<br \/>\n*   <code>proxy_http_version 1.1<\/code> ve <code>proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection \"upgrade\";<\/code>: Bu ayarlar, Meteor&#8217;un ger\u00e7ek zamanl\u0131 ileti\u015fim i\u00e7in kulland\u0131\u011f\u0131 WebSockets&#8217;in d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Dosyay\u0131 kaydedin ve kapat\u0131n (Ctrl+X, Y, Enter).<\/p>\n<h4>Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Etkinle\u015ftirme<\/h4>\n<p>Yeni yap\u0131land\u0131rma dosyas\u0131n\u0131 etkinle\u015ftirmek i\u00e7in, <code>\/etc\/nginx\/sites-enabled\/<\/code> dizinine bir sembolik ba\u011flant\u0131 (symlink) olu\u015fturman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/yourdomain.com \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<p>Nginx yap\u0131land\u0131rma dosyas\u0131nda herhangi bir s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer <code>test is successful<\/code> mesaj\u0131n\u0131 g\u00f6r\u00fcrseniz, her \u015fey yolundad\u0131r. \u015eimdi Nginx servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo service nginx restart<\/code><\/pre>\n<p>Art\u0131k web taray\u0131c\u0131n\u0131zdan <code>http:\/\/yourdomain.com<\/code> adresine giderek Meteor uygulaman\u0131za eri\u015febilmeniz gerekir.<\/p>\n<h3>G\u00fcvenlik \u00d6nlemleri<\/h3>\n<p>Bir \u00fcretim ortam\u0131nda g\u00fcvenlik her zaman \u00f6ncelikli olmal\u0131d\u0131r.<\/p>\n<h4>UFW (Uncomplicated Firewall) Kurulumu<\/h4>\n<p>Sunucunuzda bir g\u00fcvenlik duvar\u0131 (firewall) etkinle\u015ftirmek, istenmeyen eri\u015fimi engellemek i\u00e7in kritik \u00f6neme sahiptir. Ubuntu 14.04&#8217;te UFW (Uncomplicated Firewall) kullanmak olduk\u00e7a kolayd\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install ufw\nsudo ufw default deny incoming\nsudo ufw default allow outgoing\nsudo ufw allow ssh # SSH eri\u015fimine izin ver\nsudo ufw allow http # HTTP (80) portuna izin ver\nsudo ufw allow https # HTTPS (443) portuna izin ver (SSL kuracaksan\u0131z)\nsudo ufw enable\nsudo ufw status<\/code><\/pre>\n<p>Bu komutlar, varsay\u0131lan olarak t\u00fcm gelen ba\u011flant\u0131lar\u0131 engeller, t\u00fcm giden ba\u011flant\u0131lara izin verir ve SSH (22), HTTP (80) ve HTTPS (443) portlar\u0131na \u00f6zel olarak izin verir.<\/p>\n<h4>SSL\/TLS (HTTPS) Kurulumu (Let&#8217;s Encrypt ile)<\/h4>\n<p>Uygulaman\u0131z i\u00e7in HTTPS kullanmak, veri g\u00fcvenli\u011fi ve kullan\u0131c\u0131 gizlili\u011fi a\u00e7\u0131s\u0131ndan olmazsa olmazd\u0131r. Let&#8217;s Encrypt, \u00fccretsiz SSL\/TLS sertifikalar\u0131 sa\u011flayan pop\u00fcler bir hizmettir. Ubuntu 14.04 i\u00e7in Certbot&#8217;un otomatik kurulumu biraz daha karma\u015f\u0131k olabilir, ancak manuel olarak veya eski Certbot s\u00fcr\u00fcm\u00fcn\u00fc kullanarak sertifika alabilirsiniz.<\/p>\n<p><strong>Not:<\/strong> Ubuntu 14.04 i\u00e7in Certbot kurulumu, daha yeni Ubuntu s\u00fcr\u00fcmlerine g\u00f6re farkl\u0131l\u0131k g\u00f6sterebilir ve bazen ek ba\u011f\u0131ml\u0131l\u0131klar\u0131n manuel olarak kurulmas\u0131n\u0131 gerektirebilir. En g\u00fcvenli yol, Certbot&#8217;un resmi belgelerini takip etmektir.<\/p>\n<p>Genel ad\u0131mlar \u015funlard\u0131r:<br \/>\n1.  <strong>Certbot Kurulumu:<\/strong> Certbot&#8217;u PPA&#8217;dan veya pip arac\u0131l\u0131\u011f\u0131yla kurun.<\/p>\n<pre><code class=\"language-bash\"># PPA ile (e\u011fer mevcutsa ve destekleniyorsa)\n    sudo apt-get update\n    sudo apt-get install software-properties-common\n    sudo add-apt-repository ppa:certbot\/certbot -y\n    sudo apt-get update\n    sudo apt-get install certbot python-certbot-nginx -y # Nginx eklentisi ile<\/code><\/pre>\n<p>    E\u011fer PPA ile sorun ya\u015farsan\u0131z, <code>pip<\/code> kullanarak Certbot&#8217;u kurman\u0131z gerekebilir:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install python-pip -y\n    sudo pip install certbot certbot-nginx<\/code><\/pre>\n<p>2.  <strong>Sertifika Alma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com<\/code><\/pre>\n<p>    Certbot, Nginx yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak alg\u0131layacak ve sertifikalar\u0131 al\u0131p Nginx yap\u0131land\u0131rman\u0131za ekleyecektir. Ayr\u0131ca, sertifikalar\u0131n otomatik yenilenmesi i\u00e7in bir cron i\u015fi de ayarlayacakt\u0131r.<br \/>\n3.  <strong>Nginx Yap\u0131land\u0131rmas\u0131n\u0131 G\u00fcncelleme:<\/strong> Certbot Nginx yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak g\u00fcncelleyecektir. Bu, 80 numaral\u0131 porttan gelen t\u00fcm HTTP isteklerini 443 numaral\u0131 porta (HTTPS) y\u00f6nlendirmeyi ve SSL sertifikalar\u0131n\u0131 kullanmay\u0131 i\u00e7erecektir.<\/p>\n<p>Certbot&#8217;un otomatik olarak yapt\u0131\u011f\u0131 de\u011fi\u015fiklikleri incelemek i\u00e7in Nginx yap\u0131land\u0131rma dosyan\u0131z\u0131 kontrol edebilirsiniz.<\/p>\n<h3>Sorun Giderme (Troubleshooting)<\/h3>\n<p>Da\u011f\u0131t\u0131m s\u0131ras\u0131nda veya sonras\u0131nda sorunlarla kar\u015f\u0131la\u015fman\u0131z olas\u0131d\u0131r. \u0130\u015fte baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcm \u00f6nerileri:<\/p>\n<p>*   <strong>Uygulama Eri\u015filemiyor (502 Bad Gateway veya Bo\u015f Sayfa):<\/strong><br \/>\n    *   <strong>Nginx Loglar\u0131:<\/strong> Nginx hata loglar\u0131n\u0131 kontrol edin: <code>sudo tail -f \/var\/log\/nginx\/error.log<\/code>. Bu, Nginx&#8217;in Meteor uygulamas\u0131na ba\u011flanmada sorun ya\u015fay\u0131p ya\u015famad\u0131\u011f\u0131n\u0131 g\u00f6sterecektir.<br \/>\n    *   <strong>PM2 Loglar\u0131:<\/strong> PM2 loglar\u0131n\u0131 kontrol edin: <code>pm2 logs my-meteor-app<\/code>. Uygulaman\u0131z\u0131n kendisinde bir hata olup olmad\u0131\u011f\u0131n\u0131 g\u00f6sterir. Ortam de\u011fi\u015fkenlerinin (MONGO_URL, ROOT_URL, PORT) do\u011fru ayarland\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   <strong>Firewall:<\/strong> UFW veya ba\u015fka bir g\u00fcvenlik duvar\u0131n\u0131n Meteor uygulaman\u0131z\u0131n dinledi\u011fi porta (\u00f6rne\u011fin 3000) eri\u015fimi engellemedi\u011finden emin olun.<br \/>\n    *   <strong>Meteor Portu:<\/strong> Meteor uygulaman\u0131z\u0131n ger\u00e7ekten Nginx&#8217;in y\u00f6nlendirdi\u011fi portta (\u00f6rne\u011fin 3000) \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun.<br \/>\n*   <strong>MongoDB Ba\u011flant\u0131 Hatalar\u0131:<\/strong><br \/>\n    *   <strong>MongoDB Servisi:<\/strong> MongoDB servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun: <code>sudo service mongod status<\/code>.<br \/>\n    *   <strong>MongoDB Loglar\u0131:<\/strong> MongoDB loglar\u0131n\u0131 kontrol edin: <code>sudo tail -f \/var\/log\/mongodb\/mongod.log<\/code>.<br \/>\n    *   <strong>MONGO_URL:<\/strong> PM2&#8217;de ayarlad\u0131\u011f\u0131n\u0131z <code>MONGO_URL<\/code> ortam de\u011fi\u015fkeninin do\u011fru oldu\u011fundan ve veritaban\u0131 ad\u0131n\u0131 i\u00e7erdi\u011finden emin olun.<br \/>\n*   <strong>WebSockets Sorunlar\u0131:<\/strong><br \/>\n    *   Nginx yap\u0131land\u0131rman\u0131zda <code>proxy_set_header Upgrade $http_upgrade;<\/code> ve <code>proxy_set_header Connection \"upgrade\";<\/code> sat\u0131rlar\u0131n\u0131n bulundu\u011fundan emin olun. Bu olmadan WebSockets \u00e7al\u0131\u015fmaz.<br \/>\n*   <strong>Nginx Yap\u0131land\u0131rma Hatas\u0131:<\/strong><br \/>\n    *   <code>sudo nginx -t<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak Nginx yap\u0131land\u0131rma dosyan\u0131zda s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin. Herhangi bir hata varsa d\u00fczeltin ve Nginx&#8217;i yeniden ba\u015flat\u0131n.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu rehberde, bir Meteor.js uygulamas\u0131n\u0131 Ubuntu 14.04 LTS sunucusu \u00fczerinde Nginx ile nas\u0131l da\u011f\u0131taca\u011f\u0131m\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011frendik. Sunucu ortam\u0131n\u0131 haz\u0131rlama, Node.js ve MongoDB&#8217;yi kurma, Meteor uygulamas\u0131n\u0131 derleme ve PM2 ile \u00e7al\u0131\u015ft\u0131rma, son olarak da Nginx&#8217;i bir ters proxy olarak yap\u0131land\u0131rma s\u00fcre\u00e7lerini detayl\u0131 bir \u015fekilde ele ald\u0131k. Ayr\u0131ca, uygulaman\u0131z\u0131n g\u00fcvenli\u011fini art\u0131rmak i\u00e7in temel firewall ayarlar\u0131 ve SSL\/TLS kurulumu hakk\u0131nda da bilgi verdik.<\/p>\n<p>Unutulmamal\u0131d\u0131r ki, Ubuntu 14.04 art\u0131k g\u00fcncel bir i\u015fletim sistemi de\u011fildir ve g\u00fcvenlik g\u00fcncellemelerini almamaktad\u0131r. Yeni projeler i\u00e7in daha g\u00fcncel Ubuntu s\u00fcr\u00fcmleri (\u00f6rne\u011fin 20.04 LTS veya 22.04 LTS) kullan\u0131lmas\u0131 \u015fiddetle tavsiye edilir. Ancak, bu rehber, eski sistemlerdeki Meteor uygulamalar\u0131n\u0131 da\u011f\u0131tmak veya genel da\u011f\u0131t\u0131m prensiplerini anlamak isteyenler i\u00e7in de\u011ferli bir kaynak olacakt\u0131r. Uygulaman\u0131z\u0131n sorunsuz ve g\u00fcvenli bir \u015fekilde \u00e7al\u0131\u015fmas\u0131 i\u00e7in d\u00fczenli bak\u0131m, log takibi ve g\u00fcvenlik g\u00fcncellemelerini (e\u011fer m\u00fcmk\u00fcnse) aksatmaman\u0131z \u00f6nemlidir. Art\u0131k Meteor uygulaman\u0131z d\u00fcnya ile bulu\u015fmaya haz\u0131r!<br \/>\n<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi\nGiri\u015f\nWeb geli\u015ftirme d\u00fcnyas\u0131 s\u00fcrekli evrim ge\u00e7irirken, geli\u015ftiric","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-37619","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi\" \/>\n<meta property=\"og:description\" content=\"Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi Giri\u015f Web geli\u015ftirme d\u00fcnyas\u0131 s\u00fcrekli evrim ge\u00e7irirken, geli\u015ftiric\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-10T15:40:42+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi\",\"datePublished\":\"2026-01-10T15:40:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/\"},\"wordCount\":2762,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/\",\"name\":\"Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-10T15:40:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi","og_description":"Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi Giri\u015f Web geli\u015ftirme d\u00fcnyas\u0131 s\u00fcrekli evrim ge\u00e7irirken, geli\u015ftiric","og_url":"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-10T15:40:42+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi","datePublished":"2026-01-10T15:40:42+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/"},"wordCount":2762,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/","name":"Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-10T15:40:42+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/meteor-js-uygulamasini-ubuntu-14-04-uzerinde-nginx-ile-dagitma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Meteor.js Uygulamas\u0131n\u0131 Ubuntu 14.04 \u00dczerinde Nginx ile Da\u011f\u0131tma Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37619","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=37619"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37619\/revisions"}],"predecessor-version":[{"id":37620,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37619\/revisions\/37620"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37619"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37619"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37619"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}