我使用Nginx(1.8.1)在VPS中部署Ghost(0.7.6)。为了使仪表板和登录页面安全,我强制要求在访问此类页面时使用HTTPS(例如/ghost
页面)。但是,对于任何其他页面的请求(例如访问Ghost博客本身),我想强制它使用HTTP。 Ghost正在收听127.0.0.1:2368
。ERR_TOO_MANY_REDIRECTS同时使用HTTP和HTTPS设置Ghost + Nginx
奇怪的是,结果并不像我所期待的:我每次访问我的博客(假设URL是a.b
),它说,我的网站有ERR_TOO_MANY_REDIRECTS
,它http://a.b
和https://a.b
(或http://a.b/signin
和https://a.b/signin
之间重定向)。但是,当我访问管理控制台(https://a.b/ghost
或http://a.b/ghost
)时,它按预期行事(没有错误,正确重定向以使用HTTPS)。
任何帮助?
我的Nginx的配置:
# Configuration for http://a.b
server {
listen 80;
server_name a.b;
location ^~ /ghost { # /ghost should be accessed securely
return 301 https://$host$request_uri;
}
location/{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:2368;
}
}
# Configuration for http://a.b
server {
listen 443 ssl;
server_name a.b;
ssl_certificate ...;
ssl_certificate_key ...;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers '...';
location ^~ /ghost { # /ghost should be accessed securely
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:2368;
}
location/{ # Force to use HTTP
return 301 http://$host$request_uri;
}
}
任何形式的帮助,将不胜感激:')
为什么不直接启用HTTPS整个网站上?如果你使用spdy或者http2,那么对于你来说,维护更简单,对你更安全,更快。 – Tom