Question

How To Setup Multiple Node.js On Single Server

I’m currently learning node.js and loving it. I have a single server which is bounded with just 1 ip addresses. But I have a two node.js app on that server. My nginx is like:

  server {
    listen 80;
    server_name domain.comm www.domain.comm;
    location / {
      proxy_pass http://localhost:6300;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
      proxy_cache_bypass $http_upgrade;
    }
  }


server {
  listen 80;
  server_name lite.domain.com;
  location / {
    proxy_pass http://localhost:5300;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }
}

And all my DNS records all set it up. I’d already set lite.domain.com to my server ip. When i try to run that nginx domain.com gives blank page with title and lots of 404 error on inspect page.

lite.domain.com also taking a action same as domain.com

I checked all my apps are working properly at background and clean. So whats wrong with my nginx configuration as reverse proxy for node.js?

Thank you for any input <3

Show comments

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

Hi @bobbyyiliev

When i try to reach lite.domain.com or directly http://www.domain.com it gives me white of death (blank white) screen with that 404 console outputs:

Refused to apply style from 'http://lite.domain.com/css/bootstrap.min.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
lite.domain.com/:1 Refused to apply style from 'http://lite.domain.com/public/css/index.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
jquery.min.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
bootstrap.min.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
power.min.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
index.js:1 Failed to load resource: the server responded with a status of 404 (Not Found)
lite.domain.com/:1 Refused to apply style from 'http://lite.domain.com/css/bootstrap.min.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
lite.domain.com/:1 Refused to apply style from 'http://lite.domain.com/public/css/index.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

My dns records is like:

DNS records
Type	Hostname	Value	TTL (seconds)	
A	 lite.domain.com directs to  46.101.xxx.xx 3600  
A	 www.domain.com	 directs to  46.101.xxx.xx 3600 

By the way i have an also another droplet that carry just single app on with that configuration:

server {
	listen 80 default_server;
	listen [::]:80 default_server;


	root /var/www/app;


	server_name hellonode;

	location ^~ /assets/ {
		gzip_static on;
		expires 12h;
		add_header Cache-Control public;
  }

	location / {
		proxy_http_version 1.1;
		proxy_cache_bypass $http_upgrade;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection 'upgrade';
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_pass http://localhost:5300;
	}
}

That droplet works very well on http://ip/ with 0 error but i cant figure out my another droplet with two app.

Hi there @dethnass,

Your Nginx server blocks actually look correct.

Can you share some of the 404 errors that you get?

Also, have you tried visiting your applications on the specific ports just to test if they are running as expected: lite.domain.com:5300?

Regards, Bobby