416serg
416serg

Reputation: 448

Set up a Ghost blog at /blog on Meteor

I am not sure if this is possible but there is a way to host a Ghost blog at a subfolder instead of a subdomain https://www.allaboutghost.com/how-to-install-ghost-in-a-subdirectory/

I have set up everything on that end the way it says and now the only thing that is needed is to exclude /blog from the FlowRouter.notFound function. is there a way to do that or set up the route to listen to nginx?

// EDIT

Here's the nginx config

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

}

here's ghost config

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

Upvotes: 1

Views: 274

Answers (1)

Mark Stosberg
Mark Stosberg

Reputation: 13381

There are two separate issues here.

  1. Setting up Ghost to be served a subdirectory through Nginx. The tutorial you linked to covers exactly that.
  2. Integrating the blog with a second site based on Meteor.

It's not clear if you've completed the first step or not, so let's make sure that's taken care of first:

# Make sure your config.js for Ghost includes /blog in the url key in the development section: 'http://127.0.0.1:2368/blog' # Start Ghost in in the development enviroment: NODE_ENV=development node index.js # Check that something is actually running on port 2368: sudo netstat -plnt | grep ':2368' # Go here in your browser, you should see your Ghost blog and be able to browse it: http://127.0.0.1:2368/blog

If you have gotten that far, your Ghost blog is working and you are ready to access it through Nginx on port 80. To simplify the problem for this step, move any Meteor code out of the way temporarily so this can be verified.

Your Nginx configuration looks good. Just reload Nginx once more for good measure, and then check this URL in your browser now:

Now you should see your Ghost blog again, but now accessed through Nginx and proxied to the other port.

Once you've confirmed that step is working, add put the Meteor frontend code back in place. From the perspective of any frontend code, /blog is just like any URL handled by the web server.

If you go to /blog and see a NotFound page served by Meteor, that means that the client-side Meteor framework must have loaded from /somewhere/, presumably /index.html. In this case, there's a problem with the Nginx configuration. Perhaps there is more to it whant you have posted?

Upvotes: 1

Related Questions