{"id":15005,"date":"2024-03-11T11:26:11","date_gmt":"2024-03-11T07:56:11","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=15005"},"modified":"2024-03-11T11:26:11","modified_gmt":"2024-03-11T07:56:11","slug":"how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/tr\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/","title":{"rendered":"Ubuntu VPS&#039;de Nginx ile NestJS uygulamas\u0131 nas\u0131l da\u011f\u0131t\u0131l\u0131r"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">girii\u015f<\/h2>\n<p>Modern web uygulamalar\u0131 sa\u011flam ve g\u00fcvenli deste\u011fe dayan\u0131r. Bu nedenle, k\u00fc\u00e7\u00fck ve\/veya b\u00fcy\u00fck geli\u015ftirici ekipleri taraf\u0131ndan y\u00f6netilebilecek \u00f6l\u00e7eklenebilir, g\u00fcvenli ve mimari a\u00e7\u0131dan karma\u015f\u0131k uygulamalar olu\u015fturmak \u00e7ok \u00f6nemlidir.<\/p>\n<p>Modern geli\u015ftiriciler hem \u00f6n u\u00e7ta hem de arka u\u00e7ta JavaScript kullanmay\u0131 tercih ediyor. Express.js, \u00e7o\u011fu geli\u015ftirici taraf\u0131ndan kullan\u0131lan harika bir JavaScript \u00e7er\u00e7evesidir. Ancak, minimal mimarisi, \u00f6l\u00e7eklenebilirlik ve b\u00fcy\u00fck ekipler taraf\u0131ndan bak\u0131m i\u00e7in uygun de\u011fildir. \u0130\u015fte Nest.js tam da bu noktada devreye giriyor. Nest.js, \u00f6l\u00e7eklenebilirlik ve da\u011f\u0131t\u0131m i\u00e7in olduk\u00e7a uygun olan yerle\u015fik bir mimariye sahiptir. Ayr\u0131ca, TypeScript i\u00e7in yerel deste\u011fi, onu geli\u015ftiriciler i\u00e7in saf JavaScript&#039;ten daha uygun hale getirir.<\/p>\n<p>Bu e\u011fitimde, bir VPS&#039;de Nginx web sunucusunu kullanarak bir NestJS uygulamas\u0131n\u0131 nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve uygulaman\u0131z\u0131 web&#039;e nas\u0131l g\u00fcvenli bir \u015fekilde da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 \u00f6\u011freneceksiniz.<\/p>\n<h5 id=\"%d9%be%db%8c%d8%b4-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7\">\u00d6n ko\u015fullar<\/h5>\n<ul>\n<li>Ubuntu 20.04+ VPS veya fiziksel bir Ubuntu makinesi<\/li>\n<li>Node.js ve npm (veya yarn) paket y\u00f6neticisi.<\/li>\n<li>Nginx web sunucusu<\/li>\n<\/ul>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-1-%d8%a2%d9%85%d8%a7%d8%af%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%88-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-%db%8c%da%a9-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-nes\">Ad\u0131m 1 \u2013 NestJS uygulamas\u0131n\u0131 haz\u0131rlama ve da\u011f\u0131tma<\/h2>\n<p>Bu b\u00f6l\u00fcmde NestJS CLI&#039;yi kuracak ve temel bir NestJS uygulamas\u0131 olu\u015fturacaks\u0131n\u0131z; bunu sonraki b\u00f6l\u00fcmlerde Nginx kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 \u00f6\u011freneceksiniz.<\/p>\n<h5 id=\"%d9%86%d8%b5%d8%a8-nestjs-cli-%d8%a8%d9%87-%d8%b5%d9%88%d8%b1%d8%aa-%d8%ac%d9%87%d8%a7%d9%86%db%8c\">NestJS CLI&#039;yi global olarak y\u00fckleyin<\/h5>\n<p>NestJS CLI&#039;yi Ubuntu makinenize kurmak i\u00e7in bir terminal a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutu yaz\u0131n.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>npm i -g @nestjs\/cli<\/code><\/pre>\n<\/div>\n<p>Bu, NestJS komut sat\u0131r\u0131 aray\u00fcz\u00fcn\u00fc bilgisayar\u0131n\u0131za kuracakt\u0131r. Ard\u0131ndan, yeni bir NestJS projesinin nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 \u00f6\u011freneceksiniz.<\/p>\n<h5 id=\"%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%db%8c%da%a9-%d9%be%d8%b1%d9%88%da%98%d9%87-%d8%ac%d8%af%db%8c%d8%af-nestjs\">Yeni bir NestJS projesi olu\u015fturun<\/h5>\n<p>NestJS art\u0131k yeni bir projeye ba\u015flamak i\u00e7in iki yol sunuyor. Size en uygun y\u00f6ntemi se\u00e7ebilirsiniz.<\/p>\n<p>CLI ile bir NestJS projesi olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki komutu yaz\u0131n.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>nest new &lt;project-name&gt;<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output? Which package manager would you \u2764\ufe0f to use? (Use arrow keys)\r\n\u276f npm \r\nyarn \r\npnpm<\/code><\/pre>\n<\/div>\n<p>\u0130\u015flem tamamland\u0131\u011f\u0131nda a\u015fa\u011f\u0131daki gibi bir \u00e7\u0131kt\u0131 alacaks\u0131n\u0131z.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>OutputCREATE node_app\/.eslintrc.js (663 bytes)\r\nCREATE node_app\/.prettierrc (51 bytes)\r\nCREATE node_app\/README.md (3340 bytes)\r\nCREATE node_app\/nest-cli.json (171 bytes)\r\nCREATE node_app\/package.json (1947 bytes)\r\nCREATE node_app\/tsconfig.build.json (97 bytes)\r\nCREATE node_app\/tsconfig.json (546 bytes)\r\nCREATE node_app\/src\/app.controller.ts (274 bytes)\r\nCREATE node_app\/src\/app.module.ts (249 bytes)\r\nCREATE node_app\/src\/app.service.ts (142 bytes)\r\nCREATE node_app\/src\/main.ts (208 bytes)\r\nCREATE node_app\/src\/app.controller.spec.ts (617 bytes)\r\nCREATE node_app\/test\/jest-e2e.json (183 bytes)\r\nCREATE node_app\/test\/app.e2e-spec.ts (630 bytes)<\/code><\/pre>\n<\/div>\n<p>Bu, ge\u00e7erli \u00e7al\u0131\u015fma dizininde yeni bir proje olu\u015fturacakt\u0131r. Bunun yerine \u015funu kullanabilirsiniz: <code>;<\/code> Ba\u015fka bir dizine giden mutlak yolu da belirtin.<\/p>\n<h5 id=\"%d8%b4%d8%a8%db%8c%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d9%82%d8%a7%d9%84%d8%a8-%d8%a7%d8%b3%d8%aa%d8%a7%d8%b1%d8%aa%d8%b1\">Ba\u015flang\u0131\u00e7 \u015fablonu sim\u00fclasyonu<\/h5>\n<p>NestJS, yeni bir proje ba\u015flatmak i\u00e7in alternatif bir yol sunar. Standart bir \u015fablon g\u00f6revi g\u00f6ren bir Git deposudur. Bu deponun bir kopyas\u0131n\u0131 olu\u015fturabilir ve projeyi a\u015fa\u011f\u0131daki komutlarla ba\u015flatabilirsiniz.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>git clone https:\/\/github.com\/nestjs\/typescript-starter.git &lt;project-directory &gt;<\/code><\/pre>\n<\/div>\n<p>Klonlama tamamland\u0131ktan sonra proje dizinine cd yapman\u0131z ve ard\u0131ndan package.json dosyas\u0131ndan ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fcklemek i\u00e7in npm install komutunu \u00e7al\u0131\u015ft\u0131rman\u0131z gerekir.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>cd &lt;project-directory&gt;\r\nnpm install<\/code><\/pre>\n<\/div>\n<p>Projeniz haz\u0131r oldu\u011funda a\u015fa\u011f\u0131daki komutu kullanarak uygulama sunucusunu ba\u015flatabilirsiniz:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>npm run start<\/code><\/pre>\n<\/div>\n<p>Bu, uygulamay\u0131 http:\/\/localhost:3000 adresinde \u00e7al\u0131\u015ft\u0131racakt\u0131r. Art\u0131k localhost&#039;ta \u00e7al\u0131\u015fmaya haz\u0131r, basit bir NestJS uygulaman\u0131z var.<\/p>\n<h5 id=\"%d8%aa%d8%b3%d8%aa-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86\">Uygulama testi<\/h5>\n<p>Uygulaman\u0131z\u0131 geli\u015ftirdikten sonra, beklendi\u011fi gibi performans g\u00f6sterip g\u00f6stermedi\u011fini kontrol etmek i\u00e7in testler \u00e7al\u0131\u015ft\u0131rabilirsiniz. NestJS, uygulaman\u0131zda testler \u00e7al\u0131\u015ft\u0131ran varsay\u0131lan Jest testleri sunar. A\u015fa\u011f\u0131daki komutu kullanarak test etmeye ba\u015flayabilirsiniz:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>npm run test<\/code><\/pre>\n<\/div>\n<p>Bu program sizi test edecek ve a\u015fa\u011f\u0131dakine benzer sonu\u00e7lar g\u00f6sterecektir:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>Output&gt; node_app@0.0.1 test\r\n&gt; jest\r\nPASS src\/app.controller.spec.ts\r\nAppController\r\nroot\r\n\u2713 should return \"Hello World!\" (24 ms)\r\nTest Suites: 1 passed, 1 total\r\nTests: 1 passed, 1 total\r\nSnapshots: 0 total\r\nTime: 2.895 s\r\nRan all test suites.<\/code><\/pre>\n<\/div>\n<p>A\u015fa\u011f\u0131daki b\u00f6l\u00fcmde, bu NestJS uygulamas\u0131n\u0131 web sunucunuzda ters proxy olarak Nginx kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 \u00f6\u011freneceksiniz.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-2-%d8%aa%d9%86%d8%b8%db%8c%d9%85-nginx-%d8%a8%d8%b1%d8%a7%db%8c-%d8%ae%d8%af%d9%85%d8%aa-%d8%a8%d9%87-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-nestjs\">Ad\u0131m 2 \u2013 Nginx&#039;i NestJS uygulamas\u0131n\u0131 sunacak \u015fekilde yap\u0131land\u0131r\u0131n<\/h2>\n<p>\u015eimdi, bu NestJS uygulamas\u0131n\u0131 bar\u0131nd\u0131rmak i\u00e7in bir web sunucusu kurmaya ge\u00e7ebiliriz. Ters proxy yakla\u015f\u0131m\u0131n\u0131 kullanaca\u011f\u0131z. Bu yakla\u015f\u0131mda, uygulamam\u0131z\u0131 localhost&#039;ta belirli bir portta \u00e7al\u0131\u015ft\u0131r\u0131r ve ard\u0131ndan Nginx sunucusunu kullanarak VPS genel IP adresine veya etki alan\u0131na gelen t\u00fcm istekleri localhost&#039;taki uygulamaya y\u00f6nlendiririz. Ters proxy sunucular\u0131n\u0131n kullan\u0131m\u0131, gelen istekler ile arka u\u00e7 uygulamas\u0131 aras\u0131nda bir bariyer olu\u015fturarak web sunucusunun g\u00fcvenli\u011fini art\u0131rd\u0131\u011f\u0131 i\u00e7in bir end\u00fcstri uygulamas\u0131d\u0131r. Ayr\u0131ca, ters proxy&#039;ler, \u00f6zellikle sunucu birden fazla web uygulamas\u0131n\u0131 bar\u0131nd\u0131rmak i\u00e7in kullan\u0131ld\u0131\u011f\u0131nda, sunucuda daha iyi y\u00fck y\u00f6netimi sa\u011flar.<\/p>\n<p>Paket y\u00f6neticisini y\u00fckl\u00fcyoruz <code>pm2<\/code> \u00c7al\u0131\u015fma zaman\u0131nda program\u0131 y\u00f6netenle ba\u015fl\u0131yoruz.<\/p>\n<h5 id=\"%d9%86%d8%b5%d8%a8-pm2-process-manager\">pm2 \u0130\u015flem Y\u00f6neticisini y\u00fckleyin<\/h5>\n<p>\u0130\u015flem y\u00f6neticisini a\u00e7mak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz. <code>pm2<\/code> D\u00fczenlemek.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>npm install -g pm2<\/code><\/pre>\n<\/div>\n<p>Bu \u00e7al\u0131\u015fmayla <code>pm2<\/code> Cihaz\u0131n\u0131za global olarak kurulur.<\/p>\n<h5 id=\"%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%d9%be%db%8c%da%a9%d8%b1%d8%a8%d9%86%d8%af%db%8c-nginx-%d8%a8%d8%b1%d8%a7%db%8c-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-nestjs\">NestJS uygulamas\u0131 i\u00e7in Nginx yap\u0131land\u0131rmas\u0131 olu\u015fturma<\/h5>\n<p>\u015eimdi, uygulamay\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in Nginx&#039;i yap\u0131land\u0131r\u0131n. \u00d6n ko\u015ful e\u011fitiminde belirtildi\u011fi gibi, g\u00fcvenlik duvar\u0131n\u0131zda Nginx uygulamas\u0131na HTTP ve HTTPS eri\u015fimini etkinle\u015ftirdi\u011finizden emin olun. UFW g\u00fcvenlik duvar\u0131 kullan\u0131yorsan\u0131z, talimatlar\u0131 izleyerek bunu yapabilirsiniz.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>ufw enable\r\nufw allow \u2018Nginx Full\u2018<\/code><\/pre>\n<\/div>\n<p>\u015eimdi, NestJS uygulamam\u0131z i\u00e7in bir yap\u0131land\u0131rma blo\u011fu olu\u015fturacaks\u0131n\u0131z. Varsay\u0131lan ayarlar\u0131 d\u00fczenlemek yerine, yeni uygulamalar i\u00e7in yeni yap\u0131land\u0131rma bloklar\u0131 olu\u015fturman\u0131z \u00f6nerilir. Blo\u011fu olu\u015fturmak i\u00e7in terminalinize a\u015fa\u011f\u0131daki kodu yaz\u0131n.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>sudo nano \/etc\/nginx\/sites-available\/your_domain<\/code><\/pre>\n<\/div>\n<p>Burada, uygulama i\u00e7in your_domain kulland\u0131k, ancak siz bunu kendi uygulaman\u0131z\u0131n ad\u0131yla de\u011fi\u015ftireceksiniz. Ard\u0131ndan d\u00fczenleyicide a\u015fa\u011f\u0131daki kodu girin:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>server {\r\nserver_name your_domain www.your_domain;\r\nlocation \/ {\r\nproxy_pass http:\/\/localhost:3000;\r\nproxy_http_version 1.1;\r\nproxy_set_header Upgrade $http_upgrade;\r\nproxy_set_header Connection 'upgrade';\r\nproxy_set_header Host $host;\r\nproxy_cache_bypass $http_upgrade;\r\n}\r\n}<\/code><\/pre>\n<\/div>\n<p>\u015eimdi, Nginx&#039;e sites-available klas\u00f6r\u00fcndeki kullan\u0131labilir web uygulamalar\u0131n\u0131 aramas\u0131n\u0131 s\u00f6yleyen bir sembolik ba\u011flant\u0131 olu\u015fturacaks\u0131n\u0131z:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>sudo ln -s \/etc\/nginx\/sites-available\/your_domain \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<\/div>\n<p>Ayr\u0131ca, varsay\u0131lan ba\u011flant\u0131y\u0131 devre d\u0131\u015f\u0131 b\u0131rakman\u0131z gerekir; aksi takdirde nginx t\u00fcm istekleri varsay\u0131lan siteye y\u00f6nlendirecektir. Ba\u011flant\u0131y\u0131 kald\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>sudo unlink \/etc\/nginx\/sites-enabled\/default<\/code><\/pre>\n<\/div>\n<p>\u015eimdi a\u015fa\u011f\u0131daki komutu kullanarak Nginx servisini yeniden ba\u015flat\u0131n.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>sudo systemctl restart nginx<\/code><\/pre>\n<\/div>\n<h5 id=\"%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-nestjs-%d8%a8%d8%a7-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-nginx\">Nginx kullanarak NestJS uygulamas\u0131n\u0131 da\u011f\u0131tma<\/h5>\n<p>\u015eimdi, NestJS uygulaman\u0131z\u0131n y\u00fcr\u00fct\u00fclmesini y\u00f6netmek i\u00e7in pm2 paket y\u00f6neticisini ba\u015flatacaks\u0131n\u0131z. \u00c7al\u0131\u015fma dizinini NestJS uygulama dizininize de\u011fi\u015ftirin ve a\u015fa\u011f\u0131daki komutu yaz\u0131n.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>pm2 start npm --name \"your_domain\" \u2013 start<\/code><\/pre>\n<\/div>\n<p>Sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda pm2&#039;nin \u00e7al\u0131\u015fmas\u0131n\u0131 yap\u0131land\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>pm2 startup<\/code><\/pre>\n<\/div>\n<p>Program\u0131 pm2&#039;de kurmay\u0131 tamamlad\u0131\u011f\u0131n\u0131zda, pm2 i\u015flem listesini a\u015fa\u011f\u0131daki \u015fekilde kaydedin:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\">pm2 save<\/pre>\n<\/div>\n<p>\u015eimdi, web uygulamas\u0131n\u0131 ba\u015flang\u0131\u00e7ta \u00e7al\u0131\u015facak \u015fekilde ayarlad\u0131k ve Nginx&#039;i localhost&#039;ta \u00e7al\u0131\u015fan uygulamam\u0131za ters proxy yapacak \u015fekilde yap\u0131land\u0131rd\u0131k.<\/p>\n<h5 id=\"%d8%aa%d8%b3%d8%aa-%d9%88%d8%a8-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86\">Web uygulama testi<\/h5>\n<p>A\u015fa\u011f\u0131daki komutu yazarak web uygulaman\u0131z\u0131 konsolunuzdan test edebilirsiniz.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>curl http:\/\/localhost<\/code><\/pre>\n<\/div>\n<p>Ters proxy&#039;yi sunucunun kendi IP adresine ayarlad\u0131\u011f\u0131m\u0131z i\u00e7in sunucunun genel IP adresine, etki alan\u0131na veya yerel ana bilgisayara gelen her istek uygulamaya iletilecektir. <code>NestsJS sizin_alan_ad\u0131n\u0131z<\/code> Rehberlidir.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>OutputHello World!<\/code><\/pre>\n<\/div>\n<p>Bir sonraki b\u00f6l\u00fcmde, istekleriniz i\u00e7in HTTPS protokol\u00fcn\u00fc kullanman\u0131za olanak sa\u011flayacak SSL&#039;i uygulaman\u0131za nas\u0131l ekleyece\u011finizi \u00f6\u011freneceksiniz.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-3-%d8%a7%d9%81%d8%b2%d9%88%d8%af%d9%86-ssl-%d8%a8%d8%a7-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-lets-encrypt-%d8%a7%d8%ae%d8%aa%db%8c\">Ad\u0131m 3 \u2013 Let&#039;s Encrypt kullanarak SSL ekleyin (\u0130ste\u011fe ba\u011fl\u0131)<\/h2>\n<p>\u015eimdiye kadar, Nginx sunucusuyla tam i\u015flevli bir NestJS uygulamas\u0131n\u0131 nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 \u00f6\u011frendiniz. Ancak bu da\u011f\u0131t\u0131m, g\u00fcvenlik a\u00e7\u0131klar\u0131 nedeniyle \u00fcretimde \u00f6nerilmeyen HTTP protokol\u00fcn\u00fc kullan\u0131r. Bu nedenle, HTTP&#039;nin \u015fifreli bir s\u00fcr\u00fcm\u00fc olan HTTPS protokol\u00fcne ge\u00e7mek istersiniz. HTTPS, bir Sertifika Yetkilisi taraf\u0131ndan verilen SSL\/TLS sertifikalar\u0131n\u0131 kullan\u0131r. Bu sertifikalar bir web sitesine \u00f6zg\u00fcd\u00fcr ve istemci ile sunucu aras\u0131ndaki ileti\u015fimi \u015fifreler.<\/p>\n<h5 id=\"%d9%86%d8%b5%d8%a8-certbot-cli-lets-encrypt\">Let&#039;s Encrypt Certbot CLI&#039;yi y\u00fckleyin<\/h5>\n<p>Let&#039;s Encrypt, t\u00fcketiciler i\u00e7in SSL sertifikalar\u0131n\u0131 y\u00f6netmek ve otomatikle\u015ftirmek i\u00e7in bir CLI sa\u011flar. Arac\u0131 a\u015fa\u011f\u0131daki komutla y\u00fckleyebilirsiniz:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>sudo apt install certbot python3-certbot-nginx<\/code><\/pre>\n<\/div>\n<p>Bu, certbot istemcisini Ubuntu VPS&#039;inize kuracakt\u0131r.<\/p>\n<h5 id=\"%d9%88%d8%a7%da%a9%d8%b4%db%8c-%da%af%d9%88%d8%a7%d9%87%db%8c%d9%86%d8%a7%d9%85%d9%87-%d9%87%d8%a7%db%8c-ssl-tls-%d8%a8%d8%b1%d8%a7%db%8c-%d8%af%d8%a7%d9%85%d9%86%d9%87-%d8%b4%d9%85%d8%a7\">Alan ad\u0131n\u0131z i\u00e7in SSL\/TLS sertifikalar\u0131n\u0131 al\u0131n<\/h5>\n<p>Art\u0131k a\u015fa\u011f\u0131daki komutu kullanarak alan ad\u0131n\u0131z i\u00e7in SSL sertifikalar\u0131 alabilirsiniz<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>sudo certbot --nginx -d &lt;your_domain&gt; -d &lt;www.your_domain&gt;<\/code><\/pre>\n<\/div>\n<p>Mecbursun <code>alan_ad\u0131n\u0131z<\/code> Certbot&#039;u ger\u00e7ek alan ad\u0131n\u0131zla de\u011fi\u015ftirin. Certbot&#039;u VPS&#039;nizde ilk kez \u00e7al\u0131\u015ft\u0131r\u0131yorsan\u0131z, e-postan\u0131z\u0131 girmeniz ve kullan\u0131c\u0131 ko\u015fullar\u0131n\u0131 kabul etmeniz istenecektir. Gerekli bilgileri girip devam edin.<\/p>\n<p>Sertifikalar y\u00fcklendikten sonra t\u00fcm istekleri HTTPS&#039;ye y\u00f6nlendirebilirsiniz. Web sitenizin b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak i\u00e7in t\u00fcm istekleri y\u00f6nlendirmeniz \u00f6nerilir.<\/p>\n<h2 id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\">Sonu\u00e7<\/h2>\n<p>Bu e\u011fitimde, \u00fcretimdeki bir Ubuntu VPS&#039;de Nginx web sunucusunu kullanarak bir NestJS uygulamas\u0131n\u0131 nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 \u00f6\u011frendiniz. Ayr\u0131ca, Nginx kullanarak bir NestJS projesi ve uygulaman\u0131z i\u00e7in bir ters proxy nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 da \u00f6\u011frendiniz. Son olarak, sunucu alan\u0131n\u0131z i\u00e7in SSL\/TLS sertifikalar\u0131 eklemeyi ve istemcileriniz ile sunucunuz aras\u0131ndaki ileti\u015fimin b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc nas\u0131l sa\u011flayaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frendiniz.<\/p>","protected":false},"excerpt":{"rendered":"Giri\u015f Modern web uygulamalar\u0131 sa\u011flam ve g\u00fcvenli deste\u011fe dayan\u0131r. Bu nedenle,\u2026","protected":false},"author":1,"featured_media":15016,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_primary_category":"193","footnotes":""},"categories":[193,352,204],"tags":[412,411,368],"class_list":{"0":"post-15005","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-tutorials","8":"category-app","9":"category-servers","10":"tag-application","11":"tag-nginx","12":"tag-ubuntu"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 NestJS \u0628\u0627 Nginx \u062f\u0631 Ubuntu VPS - \u0628\u0644\u0627\u06af ITPiran<\/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:\/\/www.itpiran.net\/blog\/tr\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 NestJS \u0628\u0627 Nginx \u062f\u0631 Ubuntu VPS - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u0645\u0642\u062f\u0645\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u0645\u062f\u0631\u0646 \u0645\u062a\u06a9\u06cc \u0628\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646 \u0645\u062d\u06a9\u0645 \u0648 \u0627\u06cc\u0645\u0646 \u0647\u0633\u062a\u0646\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646\u060c \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u06a9\u0647&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/tr\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-11T07:56:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2024\/03\/11112346\/Nestjs.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1793\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\"},\"headline\":\"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 NestJS \u0628\u0627 Nginx \u062f\u0631 Ubuntu VPS\",\"datePublished\":\"2024-03-11T07:56:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\\\/\"},\"wordCount\":126,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/11112346\\\/Nestjs.jpg\",\"keywords\":[\"application\",\"nginx\",\"Ubuntu\"],\"articleSection\":[\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"\u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\",\"\u0633\u0631\u0648\u0631\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\\\/\",\"name\":\"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 NestJS \u0628\u0627 Nginx \u062f\u0631 Ubuntu VPS - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/11112346\\\/Nestjs.jpg\",\"datePublished\":\"2024-03-11T07:56:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\\\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/11112346\\\/Nestjs.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/11112346\\\/Nestjs.jpg\",\"width\":1793,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 NestJS \u0628\u0627 Nginx \u062f\u0631 Ubuntu VPS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tr\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ubuntu VPS&#039;de Nginx ile NestJS Uygulamas\u0131 Nas\u0131l Da\u011f\u0131t\u0131l\u0131r - ITPiran Blog","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:\/\/www.itpiran.net\/blog\/tr\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/","og_locale":"tr_TR","og_type":"article","og_title":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 NestJS \u0628\u0627 Nginx \u062f\u0631 Ubuntu VPS - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u0645\u0642\u062f\u0645\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u0645\u062f\u0631\u0646 \u0645\u062a\u06a9\u06cc \u0628\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646 \u0645\u062d\u06a9\u0645 \u0648 \u0627\u06cc\u0645\u0646 \u0647\u0633\u062a\u0646\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646\u060c \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u06a9\u0647&hellip;","og_url":"https:\/\/www.itpiran.net\/blog\/tr\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2024-03-11T07:56:11+00:00","og_image":[{"width":1793,"height":1110,"url":"https:\/\/cdn.itpiran.net\/2024\/03\/11112346\/Nestjs.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"admin","Tahmini okuma s\u00fcresi":"2 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/"},"author":{"name":"admin","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81"},"headline":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 NestJS \u0628\u0627 Nginx \u062f\u0631 Ubuntu VPS","datePublished":"2024-03-11T07:56:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/"},"wordCount":126,"commentCount":0,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/03\/11112346\/Nestjs.jpg","keywords":["application","nginx","Ubuntu"],"articleSection":["\u0622\u0645\u0648\u0632\u0634\u06cc","\u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646","\u0633\u0631\u0648\u0631"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/","url":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/","name":"Ubuntu VPS&#039;de Nginx ile NestJS Uygulamas\u0131 Nas\u0131l Da\u011f\u0131t\u0131l\u0131r - ITPiran Blog","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/03\/11112346\/Nestjs.jpg","datePublished":"2024-03-11T07:56:11+00:00","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/"]}]},{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2024\/03\/11112346\/Nestjs.jpg","contentUrl":"https:\/\/cdn.itpiran.net\/2024\/03\/11112346\/Nestjs.jpg","width":1793,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0622\u0645\u0648\u0632\u0634\u06cc","item":"https:\/\/www.itpiran.net\/blog\/category\/tutorials\/"},{"@type":"ListItem","position":3,"name":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 NestJS \u0628\u0627 Nginx \u062f\u0631 Ubuntu VPS"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"ITPiran Blog","description":"\u0130ran S\u00fcrd\u00fcr\u00fclebilir Ticaret Haberleri ve Makaleleri","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"S\u00fcrd\u00fcr\u00fclebilir \u0130ran \u0130\u015fletmeleri Blogu","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81","name":"y\u00f6netici","url":"https:\/\/www.itpiran.net\/blog\/tr\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts\/15005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/comments?post=15005"}],"version-history":[{"count":10,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts\/15005\/revisions"}],"predecessor-version":[{"id":15015,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts\/15005\/revisions\/15015"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/media\/15016"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/media?parent=15005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/categories?post=15005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/tags?post=15005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}