Bassem
September 29, 2025, 3:36am
1
I use a transactional suse webserver
And I have tweaked the .conf files to no avail.
Everything gives the same error of missing an index.html and permission denied message.to the subfolder in the htdocs folder.
Also permissions checked and well.
What can I try to do?
<VirtualHost *:80>
ServerName qrn.duckdns.org
Redirect permanent / https://qrn.duckdns.org/
</VirtualHost>
<VirtualHost *:443>
ServerName qrn.duckdns.org
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/qrn.duckdns.org/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/qrn.duckdns.org/privkey.pem
ProxyPreserveHost On
ProxyPass /Bijbel/ http://127.0.0.1:2368/
ProxyPassReverse /Bijbel/ http://127.0.0.1:2368/
ErrorLog /var/log/apache2/ghost_error.log
CustomLog /var/log/apache2/ghost_access.log combined
</VirtualHost>
Nginx runs in front of apache.
Just to confirm - you’re just using Apache (and Nginx??) as a reverse proxy, right? You’re not trying to serve Ghost’s files with Apache, or something?
Messages about index.html and htdocs are not coming from Ghost, so that suggests there’s something wrong with your setup – the proxied traffic is going to the wrong place.
I’m not sure this is the right place to get help (since it looks more like an Apache problem?), but if you do want help, you’re going to have to share some more details about the rest of your setup, including access or errors being logged by any of the three services (Nginx, Apache, and Ghost) in your stack. You’ll also need to share your nginx conf files.
Bassem
September 29, 2025, 12:13pm
3
You are totally right, a reverse proxy and standalone Node.js. The problem is that Apache does not send the request of folder /Bijbel/ to Ghost.
Nginx:
server {
listen 80;
server_name qrn.duckdns.org www.qrn.duckdns.org;
return 301 https://qrn.duckdns.org$request_uri;
}
server {
listen 443 ssl;
server_name qrn.duckdns.org;
ssl_certificate /etc/letsencrypt/live/qrn.duckdns.org/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/qrn.duckdns.org/privkey.pem;
location /Bijbel/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:2368;
}
}
server {
listen 443 ssl;
server_name www.qrn.duckdns.org;
ssl_certificate /etc/letsencrypt/live/qrn.duckdns.org/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/qrn.duckdns.org/privkey.pem;
return 301 https://qrn.duckdns.org$request_uri;
}
Bassem
September 29, 2025, 12:17pm
4
localhost:~ # systemctl status ghost_qrn-duckdns-org.service
● ghost_qrn-duckdns-org.service - Ghost systemd service for blog: qrn-duckdns-org
Loaded: loaded (/etc/systemd/system/ghost_qrn-duckdns-org.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2025-09-29 09:45:29 CEST; 4h 31min ago
Main PID: 17932 (node)
Tasks: 11 (limit: 4515)
CGroup: /system.slice/ghost_qrn-duckdns-org.service
└─ 17932 /opt/node22/bin/node /srv/www/htdocs/Bijbel/current/index.js
Sep 29 09:45:54 localhost.localdomain node[17932]: [2025-09-29 09:45:54] INFO Updating incoming recommendations on boot
Sep 29 09:50:42 localhost.localdomain node[17932]: [2025-09-29 09:50:42] INFO [Recommendations] Updating recommendations metadata
Sep 29 10:36:24 localhost.localdomain node[17932]: [2025-09-29 10:36:24] INFO Worker for job "mentions-email-report" online
Sep 29 10:36:24 localhost.localdomain node[17932]: [2025-09-29 10:36:24] INFO Worker for job mentions-email-report sent a message: done
Sep 29 11:36:24 localhost.localdomain node[17932]: [2025-09-29 11:36:24] INFO Worker for job "mentions-email-report" online
Sep 29 11:36:24 localhost.localdomain node[17932]: [2025-09-29 11:36:24] INFO Worker for job mentions-email-report sent a message: done
Sep 29 12:36:24 localhost.localdomain node[17932]: [2025-09-29 12:36:24] INFO Worker for job "mentions-email-report" online
Sep 29 12:36:24 localhost.localdomain node[17932]: [2025-09-29 12:36:24] INFO Worker for job mentions-email-report sent a message: done
Sep 29 13:36:24 localhost.localdomain node[17932]: [2025-09-29 13:36:24] INFO Worker for job "mentions-email-report" online
Sep 29 13:36:24 localhost.localdomain node[17932]: [2025-09-29 13:36:24] INFO Worker for job mentions-email-report sent a message: done