Ghost Blog 1.0.0 在 Server 端安装好后使用 NGINX 进行反代但是 url 依旧是 localhost,如何解决

2017-06-16 23:26:48 +08:00
 AirSc
本地装好后地址是 localhost:2369,但是反代在域名上后,它依旧是本地配置,导致部分链接无法访问。

看到 1.0 好像还是 Beta 版,所以就没有 config.js。

如何解决?
3620 次点击
所在节点    问与答
26 条回复
Hardrain
2017-06-17 15:03:06 +08:00
@AirSc 关于这个重定向循环,并且你使用了 https,你需要让 Ghost(Node 后端知道浏览器在用 https 访问前端,也就是 Nginx)

前端(反代,Nginx,apache httpd...)需要向后端 Pass 一个 Request Header
X-Forwarded-Proto:https

For Nginx:
server {
listen 443 ssl http2;
server_name yourdomain.tld;
ssl on;

location / {
proxy_pass http://127.0.0.1:2369;
proxy_set_header X-Forwarded-For 'https';
......}
}

For Apache httpd

<VirtualHost *:443>
ServerName yourdomain.tld
ProxyPass / http://127.0.0.1:2369/
ProxyPassReverse / http://127.0.0.1:2369/
ProxyAddHeaders On
RequestHeader set X-Forwarded-Proto "https"
......
</VirtualHost>
Hardrain
2017-06-17 15:16:22 +08:00
如果使用环境变量而非 fixed string
应该这么写
Nginx:
proxy_set_header X-Forwarded-For $scheme;

Apache httpd:
RequestHeader set X-Forwarded-Proto "%{REQUEST_SCHEME}s"
AirSc
2017-06-17 17:46:31 +08:00
@Hardrain
location ^~ / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For 'https';

proxy_set_header X-NginX-Proxy true;


proxy_pass http:/localhost:2369;
proxy_redirect off;
}

现在是这样写的,凡是他又会重定向到 http://localhost:2369
AirSc
2017-06-17 17:47:01 +08:00
proxy_pass http:// 是这样的,上面少写了
AirSc
2017-06-17 17:50:09 +08:00
@AirSc 应该是重定向到 https://localhost:2369
AirSc
2017-06-17 18:44:08 +08:00
@Hardrain
location ^~ / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;


proxy_pass http://127.0.0.(去掉这个)1:2369;

这样就好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/369008

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX