Detaillierte Erläuterung der Veröffentlichung des ASP.NET Core-Programms in der Linux-Produktionsumgebung

Y2J
Freigeben: 2017-04-20 09:12:08
Original
1973 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Veröffentlichung von ASP.NET Core-Programmen für die Linux-Produktionsumgebung vor. Interessierte Freunde können darauf verweisen.

In diesem Artikel stellen wir vor, wie Sie ASP.NET Core-Anwendungen auf Ubuntu 14.04 Server bereitstellen. Wir werden die ASP.NET Core-Anwendung hinter einen Reverse-Proxy-Server stellen, der Anfragen an unseren Kestrel-Server weiterleitet. Darüber hinaus stellen wir sicher, dass unsere Webanwendung als Daemon gestartet wird. Wir müssen ein Prozessmanagement-Tool konfigurieren, das uns bei der Wiederherstellung des Programms bei einem Absturz hilft, um eine hohe Verfügbarkeit sicherzustellen.

Kapitel:

  • Vorbereitung

  • Kopieren Sie Ihre Bewerbung

  • Konfigurieren Sie einen Reverse-Proxy-Server

  • Überwachen Sie unsere Anwendung

  • Starten Sie unsere Anwendung

  • Beobachtungsprotokolle

  • Unsere Anwendungen sicher machen

Vorbereitung

1 ein Standardkonto mit Sudo-Berechtigungen für den Zugriff auf Ubuntu 14.04 Server

2.

Kopieren Sie Ihre Anwendung

Führen Sie dotnetPublish aus Packen Sie Ihre ASP.NET Core-Anwendung in ein eigenständiges Verzeichnis ( Veröffentlichungsverzeichnis, Programme in diesem Verzeichnis werden auf den Server hochgeladen und ausgeführt). Was ist ein eigenständiges (eigenständiges) Programm? Bitte lesen Sie meinen Artikel:

.NET Core-Anwendungstypen (tragbare Apps und eigenständige Apps). Laden Sie vor dem Betrieb alle Programme im Veröffentlichungsverzeichnis über FTP-Tools (WinSCP usw.) in das vom Server angegebene Verzeichnis hoch. Als nächstes führen wir unser Programm aus. Weitere Informationen zur Ausführung des Programms finden Sie in diesem Artikel: Erstellen einer eigenständigen Konsolenanwendung mit .NET Core 1.0.

Konfigurieren Sie einen Reverse-Proxy-Server

Für dynamische Webanwendungen ist Reverse-Proxy eine sehr häufige Einstellung. Der Reverse-Proxy beendet die aktuelle Anfrage und leitet die Anfrage an die Backend-ASP.NET Core-Anwendung weiter.

Warum einen Reverse-Proxy-Server verwenden?

Kestrel kann als Webserver sehr gut mit dynamischen Inhalten umgehen, ist aber nicht so ausgereift wie die Server im Web Zu diesen Servern gehören auch: IIS, Apache oder Nginx. Der Reverse-Proxy-Server kann dem HTTP-Server einige Arbeit abnehmen, einschließlich der Verarbeitung statischer Inhalte, Caching, Komprimierung und SSL. Der Reverse-Proxy-Server kann auf einem dedizierten Server oder im selben Cluster wie der HTTP-Server bereitgestellt werden. In diesem Beispiel verwenden wir Nginx als Reverse-Proxy-Server und stellen ihn auf demselben Computer wie den HTTP-Server bereit.

Proxyserver installieren

sudo apt-get install nginx

Nginx installieren

sudo service nginx start

Nginx starten

Nginx konfigurieren

Datei bearbeiten: /etc/nginx/sites -available/default ist wie folgt:


server {
 listen 80;
 location / {
  proxy_pass http://localhost:5000;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection keep-alive;
  proxy_set_header Host $host;
  proxy_cache_bypass $http_upgrade;
 }
}
Nach dem Login kopieren

lauscht auf Port 80, die vom Proxy verwendete HTTP-Version ist: HTTP 1.1; Die ursprüngliche Anfrage wird weitergeleitet an: http://localhost:5000.

Nach Abschluss der obigen Konfiguration überprüfen Sie mit dem folgenden Befehl, ob die Syntax der Konfigurationsdatei korrekt ist:

sudo nginx -t

Wenn die Konfigurationssyntax nicht korrekt ist, starten Sie Nginx neu, damit die Konfiguration wirksam wird:

sudo nginx -s reload

Überwachen Sie unsere Webanwendung

Nginx leitet die Anfrage an Ihren Kestrel-Server weiter, aber Kestrel ist nicht wie IIS unter Windows, es verwaltet Ihren Kestrel-Prozess nicht , in diesem Artikel verwenden wir den Supervisor, um unsere Anwendung zu starten und sich selbst wiederherzustellen, wenn das System startet oder der Prozess abstürzt.

Supervisor installieren:

sudo apt-get install supervisor

Supervisor konfigurieren:

/etc/supervisor/ conf.d/hellomvc.conf (eine neue Datei)


[program:hellomvc]
command=/usr/bin/dotnet /var/aspnetcore/HelloMVC/HelloMVC.dll
directory=/var/aspnetcore/HelloMVC/
autostart=true
autorestart=true
stderr_logfile=/var/log/hellomvc.err.log
stdout_logfile=/var/log/hellomvc.out.log
environment=ASPNETCOREENVIRONMENT=Production
user=www-data
stopsignal=INT
Nach dem Login kopieren

Supervisord neu starten


sudo service supervisor stop
sudo service supervisor start
Nach dem Login kopieren

Starten Sie unsere Webanwendung

Da wir in diesem Fall den Supervisor zum Verwalten unserer Anwendung verwenden, wird die Anwendung automatisch vom Supervisor aktiviert. Beim Start des Betriebssystems wird der Supervisor mithilfe eines System V-Initialisierungsskripts als Daemon gestartet. Nach dem Start startet der Supervisor Ihre Anwendung.

Beobachtungsprotokoll

Supervisor-Protokoll

sudo tail -f /var/log/supervisor/supervisord.log

Protokolle unserer eigenen Anwendungen

tail -f /var/log/hellomvc.out.log

Originalübersetzung: In einer Linux-Produktionsumgebung veröffentlichen
Autor: Sourabh Shirhatti

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Veröffentlichung des ASP.NET Core-Programms in der Linux-Produktionsumgebung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!