|
|
发表于 2011-1-18 23:16:28
|
显示全部楼层
我需要恪守一个原则,即我不能无偿完整的给出适用于某一个站或某一个人的配置文件,希望你能理解。
配置Apache时要当作没有Nginx前端,即该怎么配置怎么配置,除了监听的端口不一样,以及不用配置SSL(配了也没事)。
Nginx的配置文件大概应该是这样的:- server {
- listen ...;
- server_name xxx;
- root xxx;
- index xxx;
- #rewrite规则写在下面
- rewrite xxx;
- rewrite xxx2;
- # proxy the PHP scripts to Apache listening on 127.0.0.1:81
- location ~ \.php$ {
- proxy_pass http://127.0.0.1:81;
- include proxy_params;
- }
- ...
- }
复制代码 上面这种写法,适用于你能够写出完整、正确的rewrite规则,即uri经过你的rewrite规则,最后都会变成实际存在的静态文件或.php文件。如果你给不出这样的规则,但是你能够给出Apache的rewrite规则,那么可以把上面的rewrite xxx替换成下面这一段,把rewrite的任务交给Apache。- try_files $uri $uri/ @apache;
- location @apache {
- proxy_pass http://127.0.0.1:81;
- include proxy_params;
- }
复制代码 我给出的第一种写法与lnamp 1.0生成的vhost文件效果是不一样的。lnamp 1.0直接将rewrite的任务交给了Apache,与我给出的第二种写法类似。
我想我举个例子你就知道问题在哪了——如果有一条rewrite规则是/archive/110 => /cache/110.html,那么rewrite在nginx写和rewrite在Apache写就有了本质区别——写在nginx中,110.html由nginx返回给客户端,写在Apache中,110.html是由Apache通过ngnix返回给客户端。如果你的网页都是这种情况,那还要nginx前端干什么? |
评分
-
查看全部评分
|