全球主机交流论坛

标题: 关于LNMPA部分伪静态出错的解决方案! [打印本页]

作者: 暗の世界    时间: 2011-5-15 20:56
标题: 关于LNMPA部分伪静态出错的解决方案!
今天我把自己VPS上的军哥的LNMP升级到了LNMPA,然后就发现部分伪静态出错了。其实这个问题很简单,因为Apache只负责处理PHP文件,剩余的文件都由Nginx处理,但是显然Nginx不认识Apache的伪静态,所以这时候只能做一点牺牲了。
  1. 编辑你的站点配置文件。
  2. /usr/local/nginx/conf/vhost/
  3. 先删除原来由Nginx负责处理的文件类型。
  4. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  5. 然后将这些文件类型交给Apache处理。
  6. location ~ .*\.(php|php5)?$
复制代码
这样就可以解决部分伪静态出错的问题了,不过这样做的话,Nginx其实也就没有存在的必要了吧?

[ 本帖最后由 暗の世界 于 2011-5-15 21:00 编辑 ]
作者: walkman660    时间: 2011-5-15 20:58
有必要,N做前端响应速度快
作者: qiqi13245    时间: 2011-5-15 21:05
location ~ .*\.(php|php5)?$交给  APACHE处理
剩下的静态文件,都交给Nginx处理
所以需要 root XXXXX
不然你试试。你把APACHE停了,访问一个什么jpg撒的。还是可以。所以是NGINX处理了
作者: 暗の世界    时间: 2011-5-15 21:10
原帖由 qiqi13245 于 2011-5-15 21:05 发表
location ~ .*\.(php|php5)?$交给  APACHE处理
剩下的静态文件,都交给Nginx处理
所以需要 root XXXXX
不然你试试。你把APACHE停了,访问一个什么jpg撒的。还是可以。所以是NGINX处理了 ...


我的意思你貌似理解错了。
  1. 先删除原来由Nginx负责处理的文件类型。
  2. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ -> location ~ .*\.(swf)$
  3. 然后将这些文件类型交给Apache处理。
  4. location ~ .*\.(php|php5)?$ -> location ~ .*\.(php|php5|gif|jpg|jpeg|png|bmp)?$
复制代码
我的意思是,如果你要对图片做伪静态,那么就要这么改一下了。
作者: dianso    时间: 2011-5-15 21:11
nginx的conf全删除,重新添加网站就行
作者: haoqiumi    时间: 2011-5-15 21:12
只用lnmp的路过 没用到这么高级的功能
作者: 暗の世界    时间: 2011-5-15 21:15
原帖由 dianso 于 2011-5-15 21:11 发表
nginx的conf全删除,重新添加网站就行


这个和删除没什么关系吧?我看了军哥的默认配置文件,遇到这种问题还是需要自己手动去改的。
作者: Poison    时间: 2011-5-15 21:35
try_files  


不解释..............................
作者: 有个就好    时间: 2011-5-15 22:09
LNMPA 没有存在的必要
作者: 瘦够了    时间: 2011-5-15 22:29
个人觉得复合使用的效率未必就高了,还是会存在一些不兼容的地方,比如伪静态,即使强制使用效率也很低。如果可能还是用LSWS,虽然收费。。。
作者: 挨个搞    时间: 2011-5-15 22:54
实践证明,如果网站静态内容较多
用lanmp是比较划算的..
作者: qiqi13245    时间: 2011-5-15 22:54
原帖由 暗の世界 于 2011-5-15 21:10 发表


我的意思你貌似理解错了。先删除原来由Nginx负责处理的文件类型。
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ -> location ~ .*\.(swf)$
然后将这些文件类型交给Apache处理。
location ~ .*\.(php|php5)?$ -> lo ...

第一,对于JPG要用Nginx的伪静态,因为Apache不作处理
第二,我一般使用Nginx Include
Apache的。hta效率差的可以
作者: qiqi13245    时间: 2011-5-15 22:55
原帖由 瘦够了 于 2011-5-15 22:29 发表
个人觉得复合使用的效率未必就高了,还是会存在一些不兼容的地方,比如伪静态,即使强制使用效率也很低。如果可能还是用LSWS,虽然收费。。。

错误,伪静态交给Nginx处理,一样比LSWS快,不止一点
作者: 暗の世界    时间: 2011-5-15 22:57
原帖由 qiqi13245 于 2011-5-15 22:54 发表

第一,对于JPG要用Nginx的伪静态,因为Apache不作处理
第二,我一般使用Nginx Include
Apache的。hta效率差的可以


如果图片伪静态交给Nginx,那么PHP伪静态怎么办?Apache的伪静态和Nginx的伪静态又不可以共存。
作者: 瘦够了    时间: 2011-5-15 23:01
标题: 回复 12# 的帖子
PM偶你QQ呗,有点事交流
作者: 瘦够了    时间: 2011-5-15 23:02
标题: 回复 14# 的帖子
问题是NGINX读的是APACHE的伪静态规则啊。。。晕
作者: 暗の世界    时间: 2011-5-15 23:05
原帖由 瘦够了 于 2011-5-15 23:02 发表
问题是NGINX读的是APACHE的伪静态规则啊。。。晕


嗯,我就是在纠结这个问题,无论用Apache还是Nginx处理伪静态,如果不做一些取舍,都要出问题。当然这个问题只会出现在要同时对PHP和非PHP文件做伪静态的时候。
作者: shangpan    时间: 2011-5-15 23:21
原帖由 暗の世界 于 2011-5-15 23:05 发表


嗯,我就是在纠结这个问题,无论用Apache还是Nginx处理伪静态,如果不做一些取舍,都要出问题。当然这个问题只会出现在要同时对PHP和非PHP文件做伪静态的时候。 ...



nginx不读apache的规则吧
作者: qiqi13245    时间: 2011-5-15 23:45
大哥,你没搞清楚伪静态原理吧
如果你是localtion /
那么nginx的伪静态和APACHE的 伪静态都可以用
如果是 localtion php 那么就只能用nginx的
其实这两个没区别
nginx的优先级别如下,首先查找自身定义的root目录下已定义可解析的文件(也就是定义过的MIME)
如果没有 查看conf中是否有设置说明
如果有 交给他处理,也就是给apache,如果没有 返回404 这就是为什么localtion php不能用apache规则的原因了,因为nginx只给apache处理后轴为php的文件
html如果没有就直接返回404 了,而apache伪静态效率又很低,所以直接在nginx里定义是最好不过的了
作者: qiqi13245    时间: 2011-5-15 23:45
标题: 回复 19# 的帖子
正解
作者: Poison    时间: 2011-5-15 23:51
原帖由 ssh 于 2011-5-15 21:35 发表
try_files  


不解释..............................




帮顶




欢迎光临 全球主机交流论坛 (https://gebi.eu.org/) Powered by Discuz! X3.4