{"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\/de\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/","title":{"rendered":"Wie man eine NestJS-Anwendung mit Nginx auf einem Ubuntu-VPS bereitstellt"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">Einf\u00fchrung<\/h2>\n<p>Moderne Webanwendungen ben\u00f6tigen eine solide und sichere Infrastruktur. Daher ist es unerl\u00e4sslich, skalierbare, sichere und architektonisch komplexe Anwendungen zu entwickeln, die von kleinen und\/oder gro\u00dfen Entwicklerteams verwaltet werden k\u00f6nnen.<\/p>\n<p>Moderne Entwickler bevorzugen JavaScript sowohl im Frontend als auch im Backend. Express.js ist ein weit verbreitetes und beliebtes JavaScript-Framework. Aufgrund seiner minimalistischen Architektur ist es jedoch f\u00fcr gro\u00dfe Teams hinsichtlich Skalierbarkeit und Wartung weniger geeignet. Hier setzt Nest.js an. Nest.js verf\u00fcgt \u00fcber eine integrierte Architektur, die es ideal f\u00fcr Skalierbarkeit und Deployment macht. Die native Unterst\u00fctzung f\u00fcr TypeScript macht es zudem f\u00fcr Entwickler attraktiver als reines JavaScript.<\/p>\n<p>In diesem Tutorial lernen Sie, wie Sie eine NestJS-Anwendung mithilfe des Nginx-Webservers auf einem VPS bereitstellen. Sie erfahren, wie Sie Ihre Anwendung sicher im Web ver\u00f6ffentlichen.<\/p>\n<h5 id=\"%d9%be%db%8c%d8%b4-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7\">Voraussetzungen<\/h5>\n<ul>\n<li>Ein Ubuntu 20.04+ VPS oder eine physische Ubuntu-Maschine<\/li>\n<li>Node.js und der npm- (oder yarn-) Paketmanager.<\/li>\n<li>Nginx-Webserver<\/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\">Schritt 1 \u2013 Vorbereiten und Bereitstellen einer NestJS-Anwendung<\/h2>\n<p>In diesem Abschnitt installieren Sie die NestJS CLI und erstellen eine einfache NestJS-Anwendung, deren Bereitstellung mit Nginx Sie in den folgenden Abschnitten erlernen werden.<\/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\">Installieren Sie die NestJS CLI global.<\/h5>\n<p>Um die NestJS CLI auf Ihrem Ubuntu-Rechner zu installieren, \u00f6ffnen Sie ein Terminal und geben Sie den folgenden Befehl ein.<\/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>Dadurch wird die NestJS-Befehlszeilenschnittstelle auf Ihrem Rechner installiert. Anschlie\u00dfend erfahren Sie, wie Sie ein neues NestJS-Projekt erstellen.<\/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\">Erstellen Sie ein neues NestJS-Projekt<\/h5>\n<p>NestJS bietet nun zwei M\u00f6glichkeiten, ein neues Projekt zu starten. Sie k\u00f6nnen die f\u00fcr Sie beste Methode ausw\u00e4hlen.<\/p>\n<p>Um ein NestJS-Projekt mit der CLI zu erstellen, geben Sie folgenden Befehl ein.<\/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>Nach Abschluss des Vorgangs erhalten Sie eine Ausgabe wie die folgende.<\/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>Dadurch wird ein neues Projekt im aktuellen Arbeitsverzeichnis erstellt. Alternativ k\u00f6nnen Sie Folgendes verwenden: <code>;<\/code> Geben Sie bitte auch den absoluten Pfad zu einem anderen Verzeichnis an.<\/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\">Starter-Vorlagensimulation<\/h5>\n<p>NestJS bietet eine alternative M\u00f6glichkeit, ein neues Projekt zu starten. Es handelt sich um ein Git-Repository, das als Vorlage dient. Sie k\u00f6nnen dieses Repository klonen und das Projekt mit den folgenden Befehlen starten.<\/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>Nach Abschluss des Klonvorgangs m\u00fcssen Sie in das Projektverzeichnis wechseln und anschlie\u00dfend npm install ausf\u00fchren, um die Abh\u00e4ngigkeiten aus package.json zu installieren.<\/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>Sobald das Projekt fertig ist, k\u00f6nnen Sie den Anwendungsserver mit folgendem Befehl starten:<\/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>Dadurch wird die Anwendung unter http:\/\/localhost:3000 ausgef\u00fchrt. Jetzt haben Sie eine einfache NestJS-Anwendung, die Sie auf localhost ausf\u00fchren k\u00f6nnen.<\/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\">Anwendungstests<\/h5>\n<p>Sobald Ihre Anwendung entwickelt ist, k\u00f6nnen Sie Tests ausf\u00fchren, um zu \u00fcberpr\u00fcfen, ob sie wie erwartet funktioniert. NestJS bietet standardm\u00e4\u00dfig Jest-Tests, die Ihre Anwendung testen. Sie k\u00f6nnen die Tests mit folgendem Befehl starten:<\/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>Dieses Programm wird Sie testen und Ergebnisse \u00e4hnlich den folgenden anzeigen:<\/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>Im folgenden Abschnitt erfahren Sie, wie Sie diese NestJS-Anwendung mithilfe von Nginx als Reverse-Proxy auf Ihrem Webserver bereitstellen.<\/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\">Schritt 2 \u2013 Konfigurieren Sie Nginx f\u00fcr die Bereitstellung der NestJS-Anwendung<\/h2>\n<p>Nun k\u00f6nnen wir einen Webserver f\u00fcr diese NestJS-Anwendung einrichten. Wir verwenden hierf\u00fcr einen Reverse-Proxy. Dabei l\u00e4uft unsere Anwendung lokal auf einem bestimmten Port. Der Nginx-Server leitet alle Anfragen an die \u00f6ffentliche IP-Adresse oder Domain des VPS an die Anwendung auf dem lokalen Rechner weiter. Der Einsatz von Reverse-Proxys ist branchen\u00fcblich, da er die Sicherheit des Webservers erh\u00f6ht, indem er eine Barriere zwischen eingehenden Anfragen und der Backend-Anwendung schafft. Au\u00dferdem erm\u00f6glicht er ein besseres Lastmanagement auf dem Server, insbesondere wenn dieser mehrere Webanwendungen hostet.<\/p>\n<p>Wir installieren den Paketmanager. <code>pm2<\/code> Wir beginnen mit demjenigen, der das Programm zur Laufzeit verwaltet.<\/p>\n<h5 id=\"%d9%86%d8%b5%d8%a8-pm2-process-manager\">Installieren Sie pm2 Process Manager<\/h5>\n<p>Sie k\u00f6nnen den folgenden Befehl verwenden, um den Prozessmanager zu \u00f6ffnen. <code>pm2<\/code> Installieren.<\/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>Mit dieser Arbeit <code>pm2<\/code> Es ist global auf Ihrem Ger\u00e4t installiert.<\/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\">Erstellung einer Nginx-Konfiguration f\u00fcr eine NestJS-Anwendung<\/h5>\n<p>Konfigurieren Sie nun Nginx f\u00fcr die Ausf\u00fchrung der Anwendung. Wie im Tutorial zu den Voraussetzungen erw\u00e4hnt, stellen Sie sicher, dass Sie die Nginx-Anwendung in Ihrer Firewall f\u00fcr HTTP und HTTPS zugelassen haben. Wenn Sie die ufw-Firewall verwenden, folgen Sie dazu den Anweisungen.<\/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>Nun erstellen Sie einen Konfigurationsblock f\u00fcr Ihre NestJS-Anwendung. Es empfiehlt sich, f\u00fcr neue Anwendungen jeweils einen neuen Konfigurationsblock zu erstellen, anstatt die Standardeinstellungen zu bearbeiten. Geben Sie dazu den folgenden Code in Ihr Terminal ein.<\/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>Hier haben wir \u201eyour_domain\u201c f\u00fcr die Anwendung verwendet, Sie m\u00fcssen dies jedoch in den Namen Ihrer Anwendung \u00e4ndern. Geben Sie anschlie\u00dfend im Editor folgenden Code ein:<\/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>Nun erstellen Sie einen symbolischen Link, der Nginx anweist, im Ordner sites-available nach verf\u00fcgbaren Webanwendungen zu suchen:<\/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>Au\u00dferdem m\u00fcssen Sie den Standardlink deaktivieren, da nginx sonst alle Anfragen an die Standardseite weiterleitet. Verwenden Sie dazu folgenden Befehl.<\/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>Starten Sie nun den Nginx-Dienst mit folgendem Befehl neu.<\/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\">Bereitstellung einer NestJS-Anwendung mit Nginx<\/h5>\n<p>Starten Sie nun den Paketmanager pm2, um die Ausf\u00fchrung Ihrer NestJS-Anwendung zu verwalten. Wechseln Sie in das Verzeichnis Ihrer NestJS-Anwendung und geben Sie den folgenden Befehl ein.<\/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>Sie k\u00f6nnen den folgenden Befehl ausf\u00fchren, um pm2 so zu konfigurieren, dass es beim Neustart des Servers ausgef\u00fchrt wird.<\/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>Sobald Sie die Einrichtung des Programms in pm2 abgeschlossen haben, speichern Sie die pm2-Prozessliste wie folgt:<\/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>Wir haben nun die Webanwendung so eingestellt, dass sie beim Systemstart ausgef\u00fchrt wird, und Nginx so konfiguriert, dass es als Reverse-Proxy f\u00fcr unsere auf localhost laufende Anwendung dient.<\/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\">Webanwendungstests<\/h5>\n<p>Sie k\u00f6nnen die Webanwendung \u00fcber Ihre Konsole testen, indem Sie den folgenden Befehl eingeben.<\/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>Da wir den Reverse-Proxy auf die IP-Adresse des Servers selbst eingestellt haben, werden alle Anfragen an die \u00f6ffentliche IP-Adresse des Servers, die Domain oder localhost vom Server an die Anwendung weitergeleitet. <code>NestJS Ihre_Dom\u00e4ne<\/code> Es wird gef\u00fchrt.<\/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>Im n\u00e4chsten Abschnitt erfahren Sie, wie Sie SSL zu Ihrer Anwendung hinzuf\u00fcgen, wodurch Sie das HTTPS-Protokoll f\u00fcr Ihre Anfragen verwenden k\u00f6nnen.<\/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\">Schritt 3 \u2013 SSL mit Let&#039;s Encrypt hinzuf\u00fcgen (optional)<\/h2>\n<p>Bisher haben Sie gelernt, wie Sie eine voll funktionsf\u00e4hige NestJS-Anwendung mit dem Nginx-Server bereitstellen. Diese Bereitstellung verwendet jedoch das HTTP-Protokoll, das aufgrund von Sicherheitsl\u00fccken f\u00fcr den Produktiveinsatz nicht empfohlen wird. Daher m\u00f6chten Sie auf das HTTPS-Protokoll umsteigen, eine verschl\u00fcsselte Version von HTTP. HTTPS verwendet SSL\/TLS-Zertifikate, die von einer Zertifizierungsstelle ausgestellt werden. Diese Zertifikate sind webseitenspezifisch und verschl\u00fcsseln die Kommunikation zwischen Client und Server.<\/p>\n<h5 id=\"%d9%86%d8%b5%d8%a8-certbot-cli-lets-encrypt\">Installieren Sie die Let&#039;s Encrypt Certbot CLI.<\/h5>\n<p>Let&#039;s Encrypt bietet eine Befehlszeilenschnittstelle (CLI) zur Verwaltung und Automatisierung von SSL-Zertifikaten f\u00fcr Endnutzer. Sie k\u00f6nnen das Tool mit folgendem Befehl installieren:<\/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>Dadurch wird der certbot-Client auf Ihrem Ubuntu VPS installiert.<\/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\">SSL\/TLS-Zertifikate f\u00fcr Ihre Domain abrufen<\/h5>\n<p>Sie k\u00f6nnen nun SSL-Zertifikate f\u00fcr Ihre Domain mit folgendem Befehl erhalten:<\/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>Du musst <code>Ihre_Dom\u00e4ne<\/code> Ersetzen Sie \u201ecertbot\u201c durch Ihre tats\u00e4chliche Domain. Wenn Sie certbot zum ersten Mal auf Ihrem VPS ausf\u00fchren, werden Sie aufgefordert, Ihre E-Mail-Adresse einzugeben und den Nutzungsbedingungen zuzustimmen. Geben Sie die erforderlichen Informationen ein und fahren Sie fort.<\/p>\n<p>Sobald die Zertifikate installiert sind, k\u00f6nnen Sie alle Anfragen auf HTTPS umleiten. Es wird empfohlen, alle Anfragen umzuleiten, um die Integrit\u00e4t Ihrer Website zu gew\u00e4hrleisten.<\/p>\n<h2 id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\">Ergebnis<\/h2>\n<p>In diesem Tutorial haben Sie gelernt, wie Sie eine NestJS-Anwendung mit dem Nginx-Webserver auf einem Ubuntu-VPS im Produktivbetrieb bereitstellen. Au\u00dferdem haben Sie gelernt, wie Sie ein NestJS-Projekt und einen Reverse-Proxy f\u00fcr Ihre Anwendung mit Nginx einrichten. Abschlie\u00dfend haben Sie gelernt, wie Sie SSL\/TLS-Zertifikate f\u00fcr Ihre Serverdomain hinzuf\u00fcgen und die Integrit\u00e4t der Kommunikation zwischen Ihren Clients und Ihrem Server sicherstellen.<\/p>","protected":false},"excerpt":{"rendered":"Einleitung Moderne Webanwendungen ben\u00f6tigen eine solide und sichere Unterst\u00fctzung. Daher ist die Entwicklung von Anwendungen, die\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\/de\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\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\/de\/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=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"2\u00a0Minuten\" \/>\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\":\"de\",\"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\":\"de\",\"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\":\"de\",\"@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\":\"de\"},{\"@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\":\"de\",\"@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\\\/de\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wie man eine NestJS-Anwendung mit Nginx auf einem Ubuntu-VPS bereitstellt \u2013 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\/de\/tutorials\/how-to-deploy-a-nestjs-application-with-nginx-on-ubuntu-22-04-vpstesting-the-application\/","og_locale":"de_DE","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\/de\/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":{"Verfasst von":"admin","Gesch\u00e4tzte Lesezeit":"2\u00a0Minuten"},"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":"de","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":"Wie man eine NestJS-Anwendung mit Nginx auf einem Ubuntu-VPS bereitstellt \u2013 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":"de","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":"de","@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":"Iranische Nachrichten und Artikel zum Thema nachhaltiger Handel","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":"de"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"Nachhaltiger iranischer Unternehmensblog","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@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":"Administrator","url":"https:\/\/www.itpiran.net\/blog\/de\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/15005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/comments?post=15005"}],"version-history":[{"count":10,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/15005\/revisions"}],"predecessor-version":[{"id":15015,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/posts\/15005\/revisions\/15015"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/media\/15016"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/media?parent=15005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/categories?post=15005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/de\/wp-json\/wp\/v2\/tags?post=15005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}