我刚刚configuration了lighttpd web服务器,将php-fcgi请求传递给外部应用程序服务器。
应用程序服务器运行PHP 5.3和spawn-fcgi。
问题是所有的Web文件都需要存在于Web服务器和应用程序服务器上。 如果我从应用程序服务器中删除Web文件,则会得到:“没有指定input文件”。 如果我从Web服务器上删除Web文件,我得到一个404错误。 当Web文件同时位于应用程序和Web服务器上时,它将起作用。
这是如何pipe理的? 有没有一种方法可以在服务器之间configuration一组带有符号链接的Web文件? 这个问题通常如何解决? 谢谢。
Web服务器上的LIGHTTPDconfiguration
#### fastcgi module fastcgi.server = ( ".php" => ( "app1.geodb.io" => ( "host" => "192.168.167.82", "port" => 8080, "check-local" => "disable", "disable-time" => 3 ) ) )
我不确定fastcgi问题,但是跨服务器同步文件的标准解决scheme是rsync
(它使用有趣的algorithm来最小化networkingstream量)。 假设你可以指定其中一台服务器作为“主”,也就是说,将其文件定义为所有其他服务器的基础,这就足够了:
rsync -avh /var/www/example/ remotehost:/var/www/example/
请注意,结尾斜杠是有意义的,如果远程主机上的文件被删除,这个命令将不会删除它们。 如果你想追加–delete:
rsync -avh --delete /var/www/example/ remotehost:/var/www/example/
你需要rsync在两端出现,当然你需要SSH访问,因为它使用ssh作为它的传输(你可以使用其他的东西,但是如果你没有足够的理由,换成)。 你也可能想在cronjob上运行它,但是如果你使用自动化的过程将文件部署到“主”,你也可以把它添加到这个工作中。
编辑:你也可以通过NFS或其他networking文件系统在所有节点上挂载/ var / www / example,当然,但是那么你失去了每个节点的一些独立性并且有可能造成瓶颈。 但是,如果您的.php文件非常耗费CPU资源,并且文件系统I / O无关紧要,您可以尝试使用此选项。