I have a nodejs app made with react running on port 80, I have a domain and enabled ssl with certbot, i’m using reverse proxy to access the app backend service and also I have a ghost server running locally and i’m using reverse proxy for it too, the problem is that ghost serves some files(images, etc over the /content route) over http which causes chrome to mark my site as insecure. This is how my config looks like:
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html;
server_name mydomain.com; # managed by Certbot
#serves react files
location / {
try_files $uri /index.html;
}
#backend redirect
location /backend {
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;
rewrite ^/backend/(.*) /$1 break;
proxy_pass http://localhost:3030;
}
# redirect to ghost instance running locally
location /ghost {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $http_host;
proxy_pass http://127.0.0.1:2368;
proxy_redirect off;
}
# redirect to ghost content: this may be merged to the /ghost config above
location /content {
rewrite ^/content/(.*) /content/$1 break;
proxy_pass http://localhost:2368;
proxy_redirect off;
}
server {
if ($host = mydomain.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
listen [::]:80 ;
server_name mydomain.com;
return 404; # managed by Certbot
}
I edited the ghost config file and set the url to use https, now my site is secure but I cant access ghost, nginx redirects the https location to the exact same location, for example: https://mydomain.com/ghost is 301 redirected to http://mydomain.com/ghost, this problem only occurs with the /ghost and /content routes.
I have no idea why nginx redirects to the same location, accessing those routes over https should just forward the request to the localhost:2368, it have worked nicely over http, before enabling ssl.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Hi @paulomarcio18p1,
Usually, one can manage his website’s redirections from a couple of places. You’ll just need to find the one that’s most suitable for you! If you manage the redirection to HTTPS from ghost, I’ll recommend removing the redirection rule set in the Nginx config file.
If removing the redirection to HTTPS in the config file works, you can use it like that. Otherwise, I’ll recommend you to check how can you change all files to be served via HTTPS in ghost without setting this redirection directly in the application’s file. I’m sure there is a rule which can be set somewhere, most CMS/Frameworks allow it nowadays.
Regards, KDSys
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.