Ghost 开源博客平台

Ghost 是一个简洁、强大的写作平台。你只须专注于用文字表达你的想法就好,其余的事情就让 Ghost 来帮你处理吧。

在子目录下面安装 Ghost

这两天有同学提到了这个问题,希望能够将 Ghost 安装在子目录(subdirectory)下面,形成 http://www.example.com/blog/ 这样的 URL 结构。其实这个需求早就有人提过,但是 Ghost 直到 0.4 版本才正式支持了这种安装方式。下面我们就来讲一下如何配置 Ghost 并用 Nginx 或 Apache 做代理。

首先,你要已经安装了 Node.js、NPM、Apache、Nginx 等服务以及 Ghost 所依赖的 npm 包。这些我们已经有详细的介绍了,在此略过。主要来看一下如何配置 Ghost 的 config.js 文件。其实也很简单,就是在 url 的配置项中添加你所希望的子目录名称即可,例如,你的域名是 your-url.com,希望安装 Ghost 到 blog 目录下面,那就在配置文件中对 url 做如下配置:

url: 'http://your-url.com/blog/',  

然后重新启动 Ghost ,Ghost 博客的配置就大功告成了!

接下来我们需要配置 Nginx 或 Apache 代理 Ghost 博客。

配置 Nginx 服务器

下面的配置文件就是让 Nginx 将用户对 /blog/ 子目录的请求全部转向我们前面配置好的 Ghost 博客系统:

server {  
    listen       80;
    server_name  localhost;

    location ^~ /blog {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://127.0.0.1:2368;
        proxy_redirect off;
    }
}

然后重新启动 Nginx ,打开浏览器并访问 http://your-url.com/blog/ 看看博客是否正常运转了?

配置 Apache 服务器

打开 Apache 的配置文件 httpd.conf,在文件末尾添加如下配置:

<IfModule mod_proxy.c>  
    ProxyPreserveHost On
    ProxyPass /blog/ http://127.0.0.1:2368/blog/
    ProxyPassReverse /blog/ http://127.0.0.1:2368/blog/
</IfModule>  

需要注意的是,首先要检查一下 Apache 的 proxy 模块是否已经开启!然后重启一下 Apache 服务,再输入网址 http://your-url.com/blog/ 看看博客是否正常运转了?

王赛
关于作者 王赛