• Our team is looking to connect with folks who use email services provided by Plesk, or a premium service. If you'd like to be part of the discovery process and share your experiences, we invite you to complete this short screening survey. If your responses match the persona we are looking for, you'll receive a link to schedule a call at your convenience. We look forward to hearing from you!
  • The BIND DNS server has already been deprecated and removed from Plesk for Windows.
    If a Plesk for Windows server is still using BIND, the upgrade to Plesk Obsidian 18.0.70 will be unavailable until the administrator switches the DNS server to Microsoft DNS. We strongly recommend transitioning to Microsoft DNS within the next 6 weeks, before the Plesk 18.0.70 release.
  • The Horde component is removed from Plesk Installer. We recommend switching to another webmail software supported in Plesk.

Question Passenger and Node.js - address 0.0.0.0:80 already in use

James Newton

New Pleskian
Hello friendly Plesk people :)

I want to run a node.js application in a sub-domain, using Passenger and nginx, but I get this error:

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

I have a new Ubuntu 16.04 server managed by Plesk Onyx 17.0.17. I have used Plesk to create a sub-domain where I want to experiment with Node.js and Phusion Passenger, from the command line. I have successfully followed this tutorial, until I get to the point where the Passenger Standalone on pass.mydomain.com is told to listen on port 80.

Here is the output from my Terminal session:

$ sudo passenger start --port 80 --user pass --environment production --daemonize
Could not start the Nginx engine:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()


I understand that if the web site created by Plesk for pass.mydomain.com is active, then there is already an instance of nginx serving up the default placeholder page. I had hoped that if I use the Plesk interface to suspend or disable the default site then this would free up port 80 for this subdomain, but this is not the case.

If I suspend the site, and visit it in my browser, I see this:

Service Temporarily Unavailable

The server is temporarily unable to service your request due to maintenance
downtime or capacity problems. Please try again later.

If I disable it, I see the default placeholder page which is served from somewhere else. In all cases, I get the bind() to 0.0.0.0:80 failed error when I call passenger start --port 80. If I delete the pass.mydomain.com site in the Plesk interface, then I also destroy all the directories that were created for it.

How can I tell Plesk that I want this subdomain to exist, but I want to control it myself, without any "help"? Or alternatively, how do I get Plesk to help me to switch off whatever is already listening on port 80?

Thanks in advance for any enlightenment you can share,

James
 
Back
Top