问题
当我击中时kevinsuttle.com
,我得到
"No data received ERR_EMPTY_RESPONSE".
当我点击时https://kevinsuttle.com
,我得到了网站。
幽灵 0.7.5
nginx 1.4 => 1.9.9
让我们加密 0.2.0
数字海洋:Ubuntu 14.04 Ghost 1-click droplet
在Networking > Domains下,我同时拥有kevinsuttle.com
和www.kevinsuttle.com
作为A
指向服务器 IP 地址 ( @
) 的记录。
DNSsimple 记录
| 类型 | 姓名 | TTL | 内容 | |-------- |---------- |--------------- |---- -------------------- | | 网址 | www.kevinsuttle.com | 3600 (1 小时) | http://kevinsuttle.com |
Ghost 的 config.js 中唯一修改的部分是我的域。
url: 'http://kevinsuttle.com',
Nginx 1.9
nginx 1.9 默认不创建以下目录:
/etc/nginx/sites-available
/etc/nginx/sites-enabled
并且通常的default
conf 不会在这两个目录中创建。
相反,有一个etc/nginx/conf.d/default.conf
和重要的,etc/nginx/conf.d/nginx.conf
。您会看到很多教程告诉您删除 default.conf,这似乎很好,但无论您做什么,都不要删除nginx.conf
。
此外,您应该将您的移动/创建ghost.conf
到/etc/nginx/conf.d/
目录中。这就是解决我的一个问题的原因,因为在目录中etc/nginx/conf.d/nginx.conf
查找的最后一行/conf.d/
包含那里的所有文件:include /etc/nginx/conf.d/*.conf;
这是我的/etc/nginx/conf.d/ghost.conf
文件:
server {
root /usr/share/nginx/html;
index index.html index.htm;
listen 443 ssl http2;
server_name kevinsuttle.com www.kevinsuttle.com;
ssl_certificate /etc/letsencrypt/live/kevinsuttle.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/kevinsuttle.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
location ~ /.well-known {
allow all;
root /var/www/;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:2368;
proxy_redirect off;
root /var/www/;
}
location /.well-known/ {
root /var/www/;
}
}
server {
listen 80 ssl http2;
server_name kevinsuttle.com;
return 301 https://$host$request_uri;
}
现在,我一切正常,并尝试将 nginx 升级到 1.9+,以便通过 http/2 服务。DigitalOcean 的 1-click Ghost droplet 默认使用 nginx 1.4。
长话短说,我一直收到这个错误:
dpkg: error processing archive /var/cache/apt/archives/nginx_1.9.9-1~trusty_amd64.deb (--unpack):
我找到的唯一解决方案是
apt-get purge nginx nginx-common
然后我可以通过将以下行添加到我的/etc/apt/source.list文件来安装 nginx 1.9。
deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx
现在我简单地添加了listen 80 ssl http2;
and listen 443 ssl http2;
,并且 http/2 工作正常。但仅当https://
明确输入 URL 时。
我发现了一些证据express
表明不支持的事实http/2
,但我不是 100% 的。
任何想法将不胜感激。