1

I am running .net core on ubuntu. If I just run my app with dotnet run I have my app successfully running

But I want to run my app on nginx with supervisor Here is my configuration:

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

And I am getting such error:

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

I think I have an issue with configuration. May be some one can help?

4 Answers 4

1

there's an error here: --server.urls:http://*:5000 - there should be a = between the server.urls and the http....

So you need to correct it to --server.urls=http://*:5000

0

Make sure your .conf supervisor file uses the .dll you published.

If you look at Scott's file as below make sure the dll you published is the one in the file. For me it was 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

I had some other issues that I posted about here... https://stackoverflow.com/questions/42243966/asp-net-core-on-ubuntu-16-04-gives-me-bad-gateway

0

I encountered the same issue and was able to resolve it by changing the first line to use --port=5010 instead of --server.urls:http://*:5010

I got more detail as to where the error was occurring by looking at the error log:

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

When I ran that command I saw the following error:

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

This made me think to change to the --port switch instead of --server after looking at the Supervisor Configuration Files documentation

Changing the first line of my .conf file to read like below fixed the problem:

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

0

I know this issue is 2 years old, but just for any one else browsing this issue

Looking at your supervisor .conf setup, you have an application error log that you can have a read of, try the following command:

sudo nano /var/log/webapi.err.log

I was getting a SIGABRT message as my application could load a poorly structured JSON, identified only in the above mention err.log.

I also had the incorrect port assignment of --server.urls:http or --server.urls=http, but this just generated a 502 nginx page.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .