GOOGLE ADS

Mittwoch, 4. Mai 2022

Wie bedient man die .net-Konsole auf Nginx?

Also habe ich es so weit gebracht, dass die.net (Framework)-Konsolenanwendung auf localhost ausgeführt werden konnte, aber das nächste Problem besteht darin, sie mit Nginx verfügbar zu machen.

Ich habe mir viele Tutorials angesehen, aber sie scheinen alle für Websites zu sein. Wie kann ich es für eine Konsolen-App zum Laufen bringen?

Danke.

Was gewinnen Sie, wenn Sie nginx davor verwenden, anstatt nur die Konsolen-App auf Port 80 (oder vorzugsweise 443 mit einem Zertifikat) zu öffnen? Wahrscheinlich müssen Sie nginx als Reverse-Proxy für Ihre App einrichten.

Ich habe die Konsolen-App auf Port 1234 ausgeführt, weil es bereits eine App gibt, die Port 80 verwendet. Um ehrlich zu sein, bin ich mir nicht sicher, warum ich Nginx verwende, ich gehe einfach davon aus, dass ich das brauche, da ich die App auf localhost aber ausgeführt habe Ich kann von außen nicht darauf zugreifen. Ich habe die Firewall so eingestellt, dass sie diesen Port von der Seite des Domänenanbieters akzeptiert.

ähm.... was genau meinst du mit "Eine Konsolenanwendung verfügbar machen"? denn was Sie mit nginx - oder jedem anderen Webserver - verfügbar machen, ist eine Website. auch: willkommen bei stackoverflow. Ich empfehle, an der Tour teilzunehmen und zu lesen, wie man eine gute Frage stellt und was zum Thema gehört.

Danke. Ich verwende wahrscheinlich nicht den genauesten Begriff. Im Grunde möchte ich nur, dass die Leute auf meine App zugreifen können. Meiner Meinung nach gibt es einige zusätzliche Einstellungen, die ich vornehmen muss, damit es der Öffentlichkeit "ausgesetzt" wird (und das ist die Verwendung von nginx). Ich kann sehen, dass die App auf localhost läuft, bin mir aber nicht sicher, warum sie nicht öffentlich ist.

Bitte sagen Sie, was Sie von einer Konsolen-App erwarten, die der Öffentlichkeit zugänglich gemacht wird. Wie würden sie darauf zugreifen? Welches Tool auf meinem Desktop würde ich starten, ignorieren Sie den nginx-Teil der Diskussion

Ich habe also eine Schleife, die einige ähnliche Webinhalte wie diese bereitstellt.

https://gist.github.com/define-private-public/d05bc52dd0bed1c4699d49e2737e80e7

Wenn ich es ausführe, sollte ein externer Benutzer zu einer Website gehen und den von dieser bereitgestellten Seiteninhalt sehen.

Wenn Ihre Konsolenanwendung vom Typ Console.ReadLine() Console.WriteLine() ist, besteht die einzige Möglichkeit, sie offenzulegen, darin, einen SSH-Server auf Ihrem Hostsystem einzurichten. Dann benötigen die Benutzer einen SSH-Client, um darauf zuzugreifen. Dies ist über einen vom Webbrowser gehosteten SSH-Zugriff möglich, aber das ist eine komplexe Lösung

Sie können das ganze Console Readline- und Writeline-Zeug ignorieren.


Lösung des Problems

Ok, die Lösung ist eigentlich ganz einfach. Alles, was Sie tun müssen, ist, Ihre eingehende Anfrage mit proxy_pass an einen lokalen Host weiterzuleiten, wie von @fredrik vorgeschlagen. Folgendes sollte der Standard-Konfigurationsdatei (unter nginx) hinzugefügt werden:

server {
listen 80;
listen [::]:80;
server_name example.com;
location / {
proxy_pass http://localhost:8888/;
}
}

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...