起因
我是用 lnmp.org 的一键安装脚本快速配置了一台lnmpa环境的服务器,然而非常悲剧的是这个脚本安装的apache httpd服务不能正确调用random number generator所以无法启动。
其实本身无法使用httpd也无所谓,但是lnmp add vhost的时候默认采用的是向httpd添加站点,然后由nginx反向代理、动静分离,此时httpd服务不能运行就会导致nginx的反向代理出错,返回500 bad gateway错误。
为什么不修复apache httpd
因为项目本身不复杂,没必要配置复杂的完整的lnmpa环境,使用lnmp环境已经远远能够满足需求。另外,lnmp的脚本安装的lnmpa环境的apache httpd使用了一些个性化配置,想要保留这些配置的同时重新安装httpd是一件麻烦事儿。
既然不太用得上apache httpd,何苦大费周章修复httpd呢?
如何解决bad geteway
不想修复httpd又不想nginx总是返回500 bad gateway,那就要把httpd从lnmpa环境中剥离出来,变成lnmp环境。
一种最容易想到的方法是删除lnmpa环境,重新配置成lnmp环境不就好了。然而环境中已经部署了多个服务,重新配置环境实在是麻烦。
nginx通过include proxy-pass-php.conf包含了反向代理httpd的配置,于是,将proxy-pass-php.conf全文注释掉,相当于删除了nginx配置中的反向代理的部分,于是解除了nginx和httpd的关系。