我正在开发一个需要每秒更新页面的 Web 应用程序。您可以想象一个股票网站,其中的数据必须实时更新。
背景
对于此实时更新,我使用 Ajax(jquery 插件)。我的数据库是带有 innoDB 表的 mysql,应用程序本身是用 php 编写的。
浏览器中的 Ajax 脚本每秒运行一次,这只执行读取操作。要使用其他值更新数据库,有一个每分钟执行一次的 cronjob,它会执行每秒运行一次的 php 脚本。此脚本执行读取和写入操作。
此外,用户还会进行读取和写入。还有很多事情要做。
问题
现在我对这种类型的大型应用程序还很陌生,有些术语让我很困惑,我不知道我的设置是否错误。
我现在的设置是这样的:
我有一台专用服务器,运行 centos 和 plesk 并行面板。该服务器运行 apache,带有 php 和 mysql 数据库。
现在,以下是让我感到困惑的事情的列表。我读过这些术语,但我不明白它们到底起什么作用以及如何从中受益。
1) 首先是 lighttpd 和 ngingx。它们是像 apache 一样的 http 服务器吗,还是其他的。如果它们是 http 服务器,那么从 apache 切换到它们是否容易?
2) 什么是 FastCGI 和 CGI。它们像 php 吗,还是其他什么。与使用 PHP 相比,它们有什么好处吗?它们是否易于切换。
3) 我最后想知道的是有关静态内容交付的一些信息。如果我想从另一个域交付我的静态内容,我是否需要单独的服务器,或者我是否只需在 PLESK 中配置它即可。
抱歉,各位朋友问了这么多新手问题,但我真的很感谢大家在这些问题上的帮助。
答案1
lighttpd 和 ngingx
正确,这些是 HTTP 守护进程,它们执行与 Apache 相同的工作,但通常适用于不同类型的内容服务。我对它们了解不多(我自己是 Apache/IIS 专家),所以我不知道为什么你会选择其中一个而不是另一个。不过,我敢肯定,serverfault 上有很多关于你为什么会选择它们的问题。
快速CGI/CGI
CGI = 通用网关接口,在 90 年代它最常用于执行 Perl 和 C 脚本(或任何预处理器)。如果我错了,请纠正我。PHP 也以 CGI 模块的形式提供,它只是一种将 PHP 引擎暴露给 HTTP 守护进程的(老式且缓慢的)方式。
FastCGI = CGI 的现代实现,显然相当不错。它是 IIS 和 Apache 模块的 ISAPI 插件的替代品。
静态内容
完全没有必要设置第二台服务器来提供静态内容。如果您要提供图片,通常最好使用第二个子域来提供图片,因为这意味着 Cookie 等无用信息不会随 IMG 请求一起发送。这是否有用实际上取决于您预期的流量水平。您应该能够在 Plesk 中配置它。