I run a lot of web servers for different projects, all of them on different ports. Generally I start with port 8000 and increment from there as I spin up new servers, but it became tiresome to remember what projects were running on which ports and what the next available port was.
/etc/hosts won't let you specify a port, but a combination of aliasing 127.0.0.1 to 127.0.0.X, forwarding ports from 8000 to 80, and adding the 127.0.0.X IP under an alias in /etc/hosts did work.
This script finds the next available value of X, aliases it with ifconfig
, forwards the given port to port 80 with ipfw
, and adds a new entry to /etc/hosts that aliases the IP to the domain you want.
Now I can add a server alias with sudo domain-alias funproject 8000
, run the web server at 127.0.0.X:8000, and load up http://funproject/ in my browser.
(Because I needed it to work on a Mac, I couldn't use iptables
. pfctl
seems to work.)
I've written more about this on Atomic Object's blog Spin.
Based on this comment, I was able to add localhost port forwarding using this command:
(where localhost:8888 is the port to open in the browser and localhost:8286 is the port to load content from)
I'll see if I can update the script this week.