.png)
Я пытаюсь загрузить экземпляр GhostCMS на моем сервере Debian 10 (buster). Я планировал сделать это с помощью обратного прокси-сервера Apache (v2.4.38). Для настройки Ghost я использовал ghost-cli, как описано в документации. ( ghost install && ghost start
) и это сработало более или менее нормально (кроме части конфигурации Nginx и, следовательно, части LetsEncrypt, которую я запустил вручную позже)
Моя конфигурация Apache для HTTP выглядит следующим образом:
<VirtualHost *:80>
DocumentRoot /var/www/ghost
ServerName blog.domain.xyz
ServerAlias www.blog.domain.xyz
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / https://127.0.0.1:2368/
ProxyPassReverse / https://127.0.0.1:2368/
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
а моя конфигурация Apache для HTTPS выглядит так:
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /var/www/ghost
ServerName blog.domain.xyz
ServerAlias www.blog.domain.xyz
ProxyPreserveHost On
ProxyRequests Off
SSLEngine On
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyPass / https://127.0.0.1:2368/
ProxyPassReverse / https://127.0.0.1:2368/
ErrorLog ${APACHE_LOG_DIR}/blog.domain.xyz_error.log
CustomLog ${APACHE_LOG_DIR}/blog.domain.xyz_access.log combined
RewriteCond %{SERVER_NAME} =blog.domain.xyz [OR]
RewriteCond %{SERVER_NAME} =www.blog.domain.xyz
SSLCertificateFile /etc/letsencrypt/live/blog.domain.xyz/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/blog.domain.xyz/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
К вашему сведению: все страницы включены с помощью a2ensite configname, а ghost по-прежнему работает на своем порту по умолчанию (localhost:2368)
Всякий раз, когда я пытаюсь загрузить страницу, я получаю ошибку HTTP 500 Proxy с указанием причины:Error during SSL Handshake with remote server
Я уже попробовал некоторые обучающие материалы, напримерhttps://www.codersbistro.com/blog/setting-up-ghost-with-apache-http-server/но они все равно не смогли мне помочь.
Надеюсь, кто-нибудь из вас сможет дать мне дельную подсказку :-)
решение1
Я уже попробовал некоторые обучающие материалы, напримерhttps://www.codersbistro.com/blog/setting-up-ghost-with-apache-http-server/но они все равно не смогли мне помочь.
Учебник включает в себя следующую часть:
ProxyPass / http://localhost:2368/
ProxyPassReverse / http://localhost:2368/
В отличие от этого ваша конфигурация включает в себя следующее
ProxyPass / https://127.0.0.1:2368/
ProxyPassReverse / https://127.0.0.1:2368/
Заметили разницу? Вы пытаетесь получить доступ к внутреннему серверу на порту 2368 с https, тогда как в руководстве используется http. Последнее, вероятно, правильно. Обратите внимание, что обработка https выполняется Apache, а не внутренним сервером CMS, который, в отличие от Apache, не должен быть доступен извне хоста.