Report this

What is the reason for this report?

Custom domain support for users with Node and Express

Posted on July 30, 2018

I want to offer support for custom domains for my users. I created a file in /etc/nginx/sites-avilable/ with a server block that routes everything to an Express app (running with PM2). I want to use Express to get the domain they are requesting from, cross reference that domain name, and show the appropriate user’s page. However, something like req.headers.host only gives me ‘localhost:3000’. How can I get the domain name of the request? Or is there a simpler way of doing this?



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!

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.

Hello friend!

I confess that I do not know off the top of my head the absolute correct path, but I wanted to weigh in because I might be able to help you move in the direction of finding it. It makes sense that you see that when using Nginx as a reverse proxy. If your app took the requests directly, acting as it’s own web server, that would resolve it. However, Nginx is going to be better optimized in most cases. So what you’re looking to do is forward the request URL as another variable to the app, and then have the app pull that variable. I believe that this will take you in the right direction:

https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/

Kind Regards, Jarland

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.