由于 Google App Engine 开发服务器每次仅提供一个文件,因此我决定通过以下方式提供静态资源:Apache 2.2.17 / XAMPP 1.7.4 / WinXP32. 使用 Apache 的“ProxyPass”,动态创建资源的请求被路由到 GAE 开发服务器。总体来说运行可靠且快速。
但是,当通过 Apache 访问时,动态创建的资源有时需要很长时间才能加载。起初我以为这是由于 GAE 开发服务器响应缓慢造成的。但是当直接从 GAE 开发服务器加载相同的资源时,响应是总是快速地。
造成这些响应缓慢的原因可能是什么?
Apache 日志摘录(注意从 10:10:42 到 10:10:53 的等待):
[Fri Aug 05 10:10:42 2011] [debug] proxy_util.c(2444): proxy: HTTP: fam 2 socket created to connect to localhost
[Fri Aug 05 10:10:42 2011] [debug] proxy_util.c(2576): proxy: HTTP: connection complete to 127.0.0.1:8080 (localhost)
[Fri Aug 05 10:10:53 2011] [debug] mod_proxy_http.c(1735): proxy: start body send
[Fri Aug 05 10:10:53 2011] [debug] mod_proxy_http.c(1839): proxy: end body send
Apache 配置,缩写:
NameVirtualHost 127.0.0.1:8081
Listen 127.0.0.1:8081
<VirtualHost 127.0.0.1:8081>
ProxyPass /demo/images !
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
Alias /demo/images "C:/Scratch/realitybuilder/demo/images"
<Directory "C:/Scratch/realitybuilder">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
AddDefaultCharset utf-8
</Directory>
</VirtualHost>