Nginx 利用子目录搭建多站点

之前已经有域名为aaa.bbb.com的网站,现在想在aaa.bbb.com/bbs/下建一个Discuz X2.5,然后在aaa.bbb.com/tomcat/下建一个java程序。服务器的环境是LNMP,配置的过程中需要不断地学习Nginx,下面做一个简要的整理。


=========================   搭建 Discuz X 2.5   ================================

参考:http://blog.163.com/cobyeah@126/blog/static/140137653201151815916438/

- 系统: Ubuntu 10.04   |  all Linux
- 软件: nginx 0.7.65

说实话我并不十分了解wordpress,但看着网上的教程设置nginx的配置就觉得无奈,nnd他们到底研究过nginx的没有啊?!
if/rewrite的一大堆,需要么?

下面是我的方案,简单得很!
=======================

前些天在弄nginx下跑wordpress,wordpress放在子目录并设置了固链,配置后发现这个问题,如图:

Nginx 利用子目录搭建多站点_第1张图片

已确认wordpress目录的权限和php进程的owner一致(对权限不熟悉的同学,执行”sudo chmod a+r $where_is_your_wordpress_path“就对了),因此确定不是权限问题。

既然权限没有问题,那么就应该是目录访问受限,需要指定index的问题了。一看,果然。
我/wordpress/ 的location下没有指定index,外头的server段也没有指定index,http段倒是指定了index.htm。 @@ 

于是加上 index index.php,重新启动,ok了。

我的location如下,简单吧?(nnd,网上的都是坑爹,请他们多看一下nginx的文档吧,拜托!!):
    location /wp/ {
        index  index.php;
        try_files $uri $uri/ /wp/index.php?$args;

    }

下面是我自己写的:

之前通过location /bbs/增加配置,结果只能加载到简单的html形式的网页,没有任何的效果和图片。

仿照上面的配置,然后在论坛的管理中心->全局->SEO设置->URL静态化中将“可用”选项全选,Rewrite兼容性选否。提交后查看当前的Rewrite规则,复制最下面的nginx的规则,粘贴到nginx配置文件location/bbs/中。重启nginx之后可以正常地访问论坛,当时点击某些链接会出错,这个还有待进一步测试。

下面是我的配置:

location /bbs/ {
        root /usr/share/nginx/html/;
index forum.php;
try_files $uri $uri/ /upload/forum.php?args;


rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
rewrite ^([^\.]*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ $1/plugin.php?id=$2:$3 last;
if (!-e $request_filename) {
return 404;
}
    }


===========================   代理Tomcat  =================================

这个我没有太多设置,只用了一下的代码:

location /mobile/ {

proxy_pass http://127.0.0.1:8082/;

}

8082端口是tomcat的。

=========================================================================

目录跳转 
将一个网站的www.xxx.com/topic  跳转到另外一个网站

location ^~ /topic {
        rewrite ^.+ http://xxxxx/discuz/$1 last;
        break;
        }


域名跳转
一:将域名xxxx.com跳转到www.xxxx.com下

         if ($host != xxxx.com) {
                 rewrite ^/(.*)$ http://www.xxxx.com/$1 permanent;
        }
二:将域名www.xxxx.com跳转到www.yyyy.com下

         if ($host != www.xxxx.com) {
                 rewrite ^/(.*)$ http://www.yyyy.com$1 permanent;
        }

本文出自 “柯小某” 博客,请务必保留此出处http://kexl908.blog.51cto.com/605006/970202


你可能感兴趣的:(nginx,服务器,论坛)