Badhus + bakterier = sant?

image

Allt för många gånger har jag vaknat dagen efter vistelse på badhuset med känningar i halsen. Ett par gånger har det också lett till ordentlig förkylning. Nu i torsdags badade jag i en dryg timme, samt njöt av bastu en stund. I fredags fick jag feber och den gav sig inte förrän idag (söndag).

Är badhus fulla av bakterier och virus? Ska man då bada oftare för att få starkare immunförsvar? Internet verkar inte ha tydliga svar men jag kommer iallafall ta det lugnt med badandet ett tag.

How to serve Node.js apps on port 80 via Apache2

You’ve probably made several apps in Node.js, perhaps via Express, and now you want to show them to the world. The URL to your app is yourdomain.com:3000, but this looks quite ugly with the port number in the end. To solve this, you may have tried to make the HTTP server listen to port 80, but it needs root access and it does not feel right.

I know many of you already have Apache2 running on Linux, so I’ve made a recipe for you on how to fix this problem in a better way. The trick is to make a proxy so Apache2 redirects things on port 80 to and from your Node.js app port. For example: if your app runs on yourdomain.com:3000, the proxy will make it available via yourdomain.com. You can also proxy sub-urls such as yourdomain.com/myapp to another Node.js app.

Start off with enabling the needed Apache2 module, mod_proxy:
sudo a2enmod proxy

I assume that you’ve already have set up a virtual host for port 80 and enabled it. If not, then please do.

To create the proxy, add the following code to your virtual host site file (somewhere inside the <VirtualHost> element):

ProxyPass / http://yourdomain.com:3000
<Location />
  ProxyPassReverse /
</Location>

That’s it! Restart apache2 and you should be able to access the app via http://yourdomain.com/.

To proxy things to and from some sub-urls, do this:

ProxyPass /myapp http://yourdomain.com:3000
<Location /myapp>
  ProxyPassReverse /
</Location>

If you get errors about the proxy module (see the apache2 error log), then you may want to look at this blog post.

To learn more about reverse proxies and how they work, see this.