For a reason that is beyond my control, there is a web server (fairly standard Debian/Apache deployment) sitting on our NAT'd network which takes all traffic to ports 80 and 443. I can't change that. This machine happens to be 32-bit (again, not me making the decisions as I would have done this differently) and a little old. I've been trying to switch my environment from PHP-FPM to Facebook's HHVM application server, which can't be installed on this particular machine (HHVM doesn't support 32-bit machines). I need to install HHVM because I want to use Facebook's new language, HACK.

My immediate reaction was to wonder if there would be a noticeable performance decrease if I installed the HHVM application server on a separate machine from the web server, while the web server communicates with the application server using the FastCGI protocol on TCP port 9000. I think it's possible and fairly easy to do, HHVM just needs to bind to the real IP of the machine rather than the loopback address. The link between the machines is full Gigabit with a single switch in between, network traffic is very low in that area, they're physically one on top of each other in the rack. So, if it is possible, what will the performance decrease be like?


Yes it is technically possible, however, I would strongly advise against going down this road. It doesn't sound like you have the necessary control over the environment in order to implement it properly. Sysadmins inheriting this system will not be pleased with your HACK. :-)

  • It appears that the FastCGIExternalServer directive provides Apache with a way of connecting to external hosts over the network with the FastCGI protocol. I'd be glad to post some apachebench test results to show before (using PHP-FPM locally via Unix socket, standard deployment) and after (using HHVM via TCP/FastCGI protocol over the network). – Libbux Mar 26 '14 at 13:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.