这两天,抽空把青年图摘小编Chirs多年来饱受困扰的定时发文功能给解决了。之前也曾尝试过,都以失败而告终,这次狠了心翻遍了我大谷歌,总算找到一个国外的小哥哥给出了解决方案。

失效的应用场景

我就是来骗吃骗喝的
采用了定时发表功能,但是,等到了时间,并没有自动发表,即使是超过设定的时间也依然还是不会发表。

失效的原因

有些人会表示,我的Ghost很好啊,定时发文稳稳的啥事也没有。就算你去Ghost官方github提issue,作者也表示是懵逼的。这就很尴尬了,那为啥,我大青年图摘就是不行呢?经过国外小哥哥的哭诉我知道了,就是https的跳转问题导致的。青年图摘为了全站https,把所有http请求做了301跳转到https。然而Ghost的配置文件里面,url设置的却是http。你要问我为啥你要把url设置为http的啊,为啥不设置为https的啊,大哥,我也想啊,因为我只要设置为https的,浏览器就会提示重定向过多,网站无法访问。当初我看把url设置为http,效果也挺好的,只是没想到,就是因为这个“不完美”的设置,导致了定时发文的失效。

解决方案

知道了失效的原因,解决就简单了,保留nginx的配置不动,还是http 301httpsghost step的时候把url设置为https的,或者手动修改config.production.json里面的urlhttps。然后解决重定向过多的问题。
解决重定向过多的问题,只要在nginx的配置里面多添加一个proxy header的值即可

location / {
    proxy_pass http://qingnian:2368;
    ...
    proxy_set_header X-Forwarded-Proto $scheme; #添加这一条,解决过多重定向
}

大结局。