Я использую Ghost в качестве платформы для ведения блогов и nginx в качестве обратного прокси для Ghost, как подробно описано в документации. Ghost устанавливается в подкаталог и обслуживается в домене http://example.com/blog, тогда как статический веб-сайт обслуживается через example.com
Я установил SSL на своем сервере и хочу обслуживать страницу входа-призрака (example.com/blog/ghost) через SSL, а остальные страницы обслуживать через обычный HTTP. Однако, если я использую forceAdminSSL:true
и пытаюсь перейти к http://example.com/blog/ghost
, он должен автоматически перенаправить меня на https://example.com/blog/ghost
. Вместо этого я перенаправляюсь на https://example.com/ghost
и получаю 404
ошибку. Единственная работа, которую я обнаружил, - это использовать foreAdminSSL:{redirect:false}
, что неуклюже, потому что тогда мне придется вручную вводить https в адресной строке вместо http.
Как настроить сервер Ghost Admin Panel по ssl, когда Ghost установлен в подкаталоге? Я предполагаю, что это как-то связано с настройкой в nginx.
Мой блок конфигурации nginx
server {
listen 80;
listen 443 ;
server_name *.example.com;
server_name example.com;
ssl on;
ssl_certificate /etc/nginx/ssl/certificate.crt;
ssl_certificate_key /etc/nginx/ssl/key.key;
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 $host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:2786;
proxy_redirect off;
}
location / {
root "/home/ubuntu/somedirectory/";
index index.html;
}