我一直在考虑运行 lighttpd 来处理静态内容,但我不想多花几块钱来运行第二个盒子。是否可以(这是我的冒险)在端口 80 上运行 Apache,在另一个端口(例如 81)上运行 lighttpd?我知道最好把它放在另一个盒子上,但如果可能的话,我希望以便宜的价格做到这一点。
谢谢
答案1
更改 lighttpd 监听的端口非常简单。只需更改“lighttpd.conf”中的“server.port”指令(或您的操作系统决定放置 lighttpd 配置的任何位置)。
您是否计划向所有引用 lighttpd 内容的 URL 添加“:81”?
如果没有,您应该考虑在端口 80 上运行 lighttpd,将 Apache 移至另一个端口,并通过 lighttpd 代理对 Apache 的访问。正如在 Server Fault 上讨论目前,运行 lighttpd 作为代理是首选,因为它比 Apache “更轻量”。
当然,lighttpd 并不是唯一的选择。还有一些lighttpd、apache 和 nginx 之间的比较一直是 Stack Overflow 上的讨论主题。我不使用 lighttpd,我不知道我在几个地方看到的内存泄漏问题是否已得到解决。
答案2
为什么要这样做?使用单独的服务器来处理静态内容不一定是个坏主意。但是,在同一台机器上运行 lighttpd(或其他任何程序)和 apache 似乎有点误导。
如果您遇到性能问题,我会找出问题的根源。如果是磁盘 IO、内存问题、网络问题等,运行 lighttpd 不会有帮助。所有这些问题仍会存在(假设它在同一台机器上运行)。
如果您遇到的问题是长时间运行的脚本或类似问题,也许它会有一点帮助,但我认为这不值得付出努力。
我认为,如果您的网站需要的静态内容与动态内容不同,那么您可能应该将该内容移至另一台服务器。现在可能是时候开始考虑更大的托管包了。
话虽如此,我建议将静态内容存储在另一个磁盘上(如果可能的话,存储在另一个控制器上),以减轻 lighttpd 和 apache 进程争夺磁盘访问权的现象。此外,如果您有内存,可以将静态内容放入 ramdisk 中,以实现更快的访问。不过,在某些时候,简单的网络带宽限制会发挥作用。