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

Subscribe
Share

In your first server block, for server_name are there supposed to be two m’s in .com?

server_name domain.comm www.domain.comm;

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

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.

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