[英]Using ProxyPass for pages but not images
由于可怕的错误 ,我们改变了将Apache连接到Tomcat的方式。 我们正在使用mod_jk
:
JkMount /path ajp13
现在我们使用mod_proxy_ajp
:
ProxyPass /path ajp://localhost:8009/path
ProxyPassReverse /path ajp://localhost:8009/path
但是, JkMount
提供了一个功能,但是ProxyPass
不提供:选择文件类型的能力。 这样就可以代理html文件,而不代理图像,换句话说,可以让速度更快的Apache提供静态内容,而仅对动态内容采用慢速Tomcat。
JkMount /*.html ajp13
有什么办法可以通过ProxyPass
实现这一目标? 可能使用周围的<Location>
指令或类似内容?
不是您的问题,而是使用此配置时要提防的问题。 当使用apache mod_proxy连接到tomcat时,我的错误日志显示在中等负载下掉线了。 将此添加到httpd.conf中解决了我的问题。
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
kmkaplan的帖子是正确的答案,但它给了我错误:
Syntax error on line 32 of .../httpd-vhosts.conf:
ProxyPass Unable to parse URL
当我将指令更改为:
ProxyPathMatch ^/(path/.*\.html)$ ajp://localhost:8009/$1
我只能假设将$1
放在端口号8009
旁边会使它感到困惑。
我们使用以下命令让Apache提供图像并设置合理的expires标头:
<Virtualhost *:80>
ServerName domain.com
ServerAlias *.domain.com
Alias /img/ /var/www/domain/img/
<Directory /var/www/domain/img/>
ExpiresActive On
ExpiresByType image/gif "access plus 1 months"
ExpiresByType image/jpg "access plus 1 months"
ExpiresByType image/jpeg "access plus 1 months"
ExpiresByType image/png "access plus 1 months"
ExpiresByType image/x-icon "access plus 1 months"
ExpiresByType image/ico "access plus 1 months"
# This will prevent apache from having to check for a .htaccess file on each request.
AllowOverride None
# Allow symlinks. Otherwise, apache will make a separate call on each filename to ensure it is not a symlink.
Options +FollowSymLinks -SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
# Prevent domain.com/img from being served by Tomcat
ProxyPass /img !
# Pass all other requests to Tomcat
ProxyPass / ajp://localhost:8009/
# 1. Note that usually no ProxyPassReverse directive is necessary. The AJP request includes
# the original host header given to the proxy, and the application server can be expected to
# generate self-referential headers relative to this host, so no rewriting is necessary.
# 2. If you still want to use it, read this first:
# http://www.humboldt.co.uk/2009/02/the-mystery-of-proxypassreverse.html
# ProxyPassReverse / http://domain.com/
</Virtualhost>
但是,如您所见,我们将映像存储在Tomcat应用程序之外。 我不知道它是否也适用于应用程序中的图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.