Nginx-Supervisor von SIGABRT beendet; unerwartet

1374
sreginogemoh

Ich betreibe .net Core auf Ubuntu. Wenn ich meine App nur mit laufe, dotnet runläuft meine App erfolgreich

Aber ich möchte meine App auf nginx mit Supervisor ausführen. Hier ist meine Konfiguration:

nginx / etc / nginx / sites-available / default:

## # You should look at the following URL's in order to grasp a solid understanding # of Nginx configuration files in order to fully unleash the power of Nginx. # http://wiki.nginx.org/Pitfalls # http://wiki.nginx.org/QuickStart # http://wiki.nginx.org/Configuration # # Generally, you will want to move this file somewhere, and start with a clean # file but keep this around for reference. Or just disable in sites-enabled. # # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples. ##  # Default server configuration # server { listen 80 default_server; listen [::]:80 default_server;  # SSL configuration # # listen 443 ssl default_server; # listen [::]:443 ssl default_server; # # Note: You should disable gzip for SSL traffic. # See: https://bugs.debian.org/773332 # # Read up on ssl_ciphers to ensure a secure configuration. # See: https://bugs.debian.org/765782 # # Self signed certs generated by the ssl-cert package # Don't use them in a production server! # # include snippets/snakeoil.conf;  root /var/www/html;  # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html;  server_name _;  location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; 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; }  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # include snippets/fastcgi-php.conf; # # # With php7.0-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php7.0-fpm: # fastcgi_pass unix:/run/php/php7.0-fpm.sock; #}  # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #}  }   # Virtual Host configuration for example.com # # You can move that to a different file under sites-available/ and symlink that # to sites-enabled/ to enable it. # #server { # listen 80; # listen [::]:80; # # server_name example.com; # # root /var/www/example.com; # index index.html; # # location / { # try_files $uri $uri/ =404; # } #} 

Supervisor /etc/supervisor/conf.d/webapi.conf:

[program:webapi] command=/usr/bin/dotnet /var/webapi/WebApi.dll --server.urls:http://*:5000 directory=/var/webapi/ autostart=true autorestart=true stderr_logfile=/var/log/webapi.err.log stdout_logfile=/var/log/webapi.out.log environment=ASPNETCORE_ENVIRONMENT=Production user=www-data stopsignal=INT 

Und ich bekomme einen solchen Fehler:

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

User@ubuntu:~/projects/WebApi$ sudo tail -f /var/log/supervisor/supervisord.log 2016-11-05 04:36:02,701 WARN Included extra file "/etc/supervisor/conf.d/webapi.conf" during parsing 2016-11-05 04:36:02,709 INFO RPC interface 'supervisor' initialized 2016-11-05 04:36:02,710 CRIT Server 'unix_http_server' running without any HTTP authentication checking 2016-11-05 04:36:02,710 INFO supervisord started with pid 10214 2016-11-05 04:36:03,713 INFO spawned: 'webapi' with pid 10217 2016-11-05 04:36:03,823 INFO exited: webapi (terminated by SIGABRT; not expected) 2016-11-05 04:36:04,826 INFO spawned: 'webapi' with pid 10224 2016-11-05 04:36:04,936 INFO exited: webapi (terminated by SIGABRT; not expected) 2016-11-05 04:36:06,941 INFO spawned: 'webapi' with pid 10246 2016-11-05 04:36:07,054 INFO exited: webapi (terminated by SIGABRT; not expected) 2016-11-05 04:36:10,060 INFO spawned: 'webapi' with pid 10255 2016-11-05 04:36:10,169 INFO exited: webapi (terminated by SIGABRT; not expected) 2016-11-05 04:36:11,171 INFO gave up: webapi entered FATAL state, too many start retries too quickly 

Ich denke, ich habe ein Problem mit der Konfiguration. Vielleicht kann jemand helfen?

1

3 Antworten auf die Frage

0
Anton Swanevelder

Stellen Sie sicher, dass Ihre .conf-Supervisor-Datei die von Ihnen veröffentlichte DLL verwendet.

Wenn Sie sich Scott's Datei wie unten ansehen, stellen Sie sicher, dass es sich bei der von Ihnen veröffentlichten DLL um die Datei in der Datei handelt. Für mich war es testweb.dll.

http://www.hanselman.com/blog/PublishingAnASPNETCoreWebsiteToACheapLinuxVMHost.aspx

[program:dotnettest] command=/usr/bin/dotnet /var/dotnettest/testweb.dll --server.urls:http://*:5123 directory=/var/dotnettest/ autostart=true autorestart=true stderr_logfile=/var/log/dotnettest.err.log stdout_logfile=/var/log/dotnettest.out.log environment=ASPNETCORE_ENVIRONMENT=Production user=www-data stopsignal=INT 

Ich hatte einige andere Probleme, die ich hier veröffentlicht habe: https://stackoverflow.com/questions/42243966/asp-net-core-on-ubuntu-16-04-gives-me-bad-gateway

0
TrumanCode

Ich bin auf das gleiche Problem gestoßen und konnte es beheben, indem ich die erste Zeile so umwandelte, dass --port = 5010 anstelle von --server.urls: http: // *: 5010 verwendet wird

Ich habe mehr Details darüber erhalten, wo der Fehler aufgetreten ist, indem ich mir das Fehlerprotokoll anschaue:

$ cat /var/log/supervisor/testapp.err.log

Als ich diesen Befehl ausführte, sah ich den folgenden Fehler:

Unhandled Exception: System.FormatException: Value for switch '--server.urls:http://*:5010' is missing.

Dies veranlasste mich dazu, an den --portSwitch zu wechseln, anstatt --serverdie Dokumentation zu Supervisor Configuration Files durchzusehen

Das Ändern der ersten Zeile meiner .conf-Datei wie unten beschrieben löste das Problem:

command=/usr/bin/dotnet /var/dotnettest/testapp.dll --port=5010

0
David Refaeli

Es gibt einen Fehler hier: --server.urls:http://*:5000- Es sollte ein =zwischen dem server.urlsund dem sein http....

Sie müssen es also korrigieren --server.urls=http://*:5000