这两天有同学提到了这个问题,希望能够将 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/
看看博客是否正常运转了?