![](/img/trans.png)
[英]Apache + NginX reverse proxy: serving static and proxy files within nested URLs
[英]Nginx reverse proxy (static files rewrite in apache)
我在Apache之前对Nginx(设置为反向代理)有一些问题。 我正在使用Apache服务PHP文件和应用.htaccess规则。
Nginx有效,但是.htaccess中的某些重写无效。
我使用timthumb.php来管理媒体,例如:
/cache/150/100/file.jpg > /media/thumb.php?src=images/file.jpg&w=150&h=100
重写规则仅在PHP应用程序中有效,但不适用于上述静态文件。 当我尝试执行自己的静态规则时,Nginx返回404。
RewriteEngine On
RewriteRule ^cache/([0-9]+)/([0-9]+)/([a-z0-9_\-\.\/]+)$ /media/thumb.php?src=images/$3&w=$1&h=$2 [L]
RewriteRule ^upload/([0-9]+)/([0-9]+)/([a-z0-9_\-\.\/]+)$ /media/thumb.php?src=upload/$3&w=$1&h=$2 [L]
<Files .*>
Order Deny,Allow
Deny From All
</Files>
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT]
我想您是通过nginx直接提供“ / upload”和“ / cache”目录-而不将其传递给apache。
尝试以下规则:
location ^~ /upload {
.......
}
location ^~ /cache {
.......
}
在将您的静态文件存储在nginx config中的位置之前。 让我知道它是否有效-如果不能-还要粘贴nginx配置的一部分。
更多阅读: http : //wiki.nginx.org/HttpCoreModule#location
取决于您在代理过程中如何配置位置-它们具有不同的优先级。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.