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; } }
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
Supervisord neu starten
sudo service supervisor stop sudo service supervisor start
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!