【问题标题】:Set up a Ghost blog at /blog on Meteor在 Meteor 上的 /blog 上建立一个 Ghost 博客
【发布时间】:2016-01-15 17:38:42
【问题描述】:

我不确定这是否可行,但有一种方法可以在子文件夹而不是子域 https://www.allaboutghost.com/how-to-install-ghost-in-a-subdirectory/ 上托管 Ghost 博客

我已经按照它所说的方式设置了所有内容,现在唯一需要做的就是从FlowRouter.notFound 函数中排除/blog。有没有办法做到这一点或设置路由来监听 nginx?

// 编辑

这是 nginx 配置

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;
  }

}

这里是幽灵配置

config = {
   // ### Production
   // When running Ghost in the wild, use the production environment.
   // Configure your URL and mail settings here
   production: {
      url: 'https://www.raiseyourflag.com/blog',
      //everything else
   }
}

【问题讨论】:

    标签: meteor nginx ghost-blog


    【解决方案1】:

    这里有两个不同的问题。

    1. 将 Ghost 设置为通过 Nginx 为子目录提供服务。 The tutorial you linked to 正好涵盖了这一点。
    2. 将博客与基于 Meteor 的第二个站点集成。

    不清楚你是否已经完成了第一步,所以让我们先确认一下:

    # 确保您的 Ghost 的 config.jsdevelopment 部分的 url 键中包含 /blog:'http://127.0.0.1:2368/blog' # 在开发环境中启动Ghost:NODE_ENV=development node index.js # 检查端口 2368 上是否正在运行:sudo netstat -plnt | grep ':2368' # 在你的浏览器中进入这里,你应该会看到你的 Ghost 博客并且可以浏览它:http://127.0.0.1:2368/blog

    如果您已经做到了这一步,您的 Ghost 博客正在运行,您可以通过端口 80 上的 Nginx 访问它。为了简化此步骤的问题,暂时将所有 Meteor 代码移开,以便验证.

    您的 Nginx 配置看起来不错。只需reload Nginx 再次为 好的措施,然后现在在浏览器中检查此 URL:

    现在您应该再次看到您的 Ghost 博客,但现在通过 Nginx 访问并代理到另一个端口。

    确认该步骤有效后,添加将 Meteor 前端代码放回原处。从任何前端代码的角度来看,/blog 就像 Web 服务器处理的任何 URL。

    如果你去/blog 看到一个由 Meteor 提供的 NotFound 页面,这意味着客户端 Meteor 框架一定是从 /somewhere/ 加载的,大概是 /index.html。在这种情况下,Nginx 配置存在问题。也许您还发布了更多内容?

    【讨论】:

    • 我已经完成了第一部分。我的问题是,当我转到/blog 时,FlowRouter 接管并将其视为 NotFound 组的一部分并呈现未找到的页面。如果不管FlowRouter如何,nginx都应该工作,我可以在这里发布nginx配置
    • 更新了问题,很遗憾在该网址上没有看到我的博客 :( 而且我无法设置前缀路径,因为我的应用程序需要位于域的根目录下
    • 另外,由于我的流星应用程序和 ghost 在两个不同的 IP 上,我该如何配置代理/我应该在哪一边做?
    • IP 无需进一步配置。 Nginx 将请求代理到运行在 127.0.0.1 上的其他服务的请求是正常的,这些服务无法从公共 IP 地址访问。
    • 这里的问题是 FlowRouter 没有向服务器发送请求。这是一个SPA。 /blog 的请求甚至没有到达服务器。
    猜你喜欢
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多