Basic Setup Question - URL and Reverse Proxy

This should be really simply, but I’ve been messing with this for hours. Any help at all is appreciated

Currently I run the Docker image of Ghost, and then traefik hanldes being the reverse proxy out to the internet. traefik connects to ghost directly inside the docker network using port 2368

I am looking to replicate this setup outside of Docker, using NGINX Proxy Manager as the reverse proxy in its own VM, and then Ghost installed natively inside Ubuntu

NGINX Proxy Manager is all setup, configured and working. It has blog.domain.com all setup with a cert and ready to go, I just need to point it at Ghost

For the ghost config, what do I enter as the URL? If I enter https blog.domain.com, it wants to setup letsencrypt, which I don’t want. Because NGINX Proxy Manager is doing that

If I enter http://blog.domain.com, it works, but some images for some reason are served over http, and some https causing weird page loadings.

If I enter http://localhost:2368, I can’t hit anything even locally

If I enter http://blog.domain.com:2368 it does skip the local NGINX which I assume is what I want, but even with a host file entry I can’t get to it even on that port

What should I be doing?

Thanks

Well, is Nginx required? I can’t hit it at all without nginx

The URL has to be https://your.site{/subpath}. This is the URL that Ghost will use for everything. If you’re having issues with proxies, make sure you’re passing the x-forwarded-proto header to Ghost, otherwise it won’t see that the URL was https

Are you sure it has to be /subpath? My current setup has everything on the root domain blog.whatever.com

You don’t need it - that’s why I put {/subpath} in curly braces :smiley:

Ah I see, my bad!

Is Nginx on the install required do you know? I was hoping to skip it

You don’t need to set up nginx specifically, but it’s strongly suggested that you put a reverse proxy in front of Ghost

So locally I should still be able to access Ghost even without NGINX setup? There must be another issue at play then as to why I can’t get to the UI. Very strange

I’ve just spent hours working on this, and its got to be an issue with the installer. I’ve even rebuilt the machine entirely, no luck. If the installer doesn’t setup nginx, you can’t get to the UI

If I select the option for nginx, boom, I can get to it

Am I missing something?

My suggestion would be to try and validate that your proxy is properly set up by trying to curl your ghost site - if that’s not the case, that means something’s wrong with how you’re proxying to ghost. If it does work, that means there’s something wrong between your proxy and browser.

To be clear - Ghost is able to run locally without any kind of proxy. However, when you expose it to the internet, you want to put a proxy in front of it for minimum security. Ghost will only serve requests, so if you’re trying to use SSL, the proxy has to terminate SSL and tell Ghost that the request came over an https connection.