nginx后面的node.js app可以让节点app确定连接是http还是https

时间:2014-09-26 05:13:10

标签: javascript node.js http nginx https

我有一个在nginx反向代理后面的服务器上运行的node.js应用程序。 Nginx设置为处理HTTP和HTTPS并将两者转发到同一个node.js应用程序。 node.js应用程序是否可以确定请求是来自http还是https?

此外,客户端的JS是否可以确定它是在http还是https?

编辑:为客户端找到了一个解决方案:

if (window.location.protocol != "https:")

还有比这更好的方法吗?

1 个答案:

答案 0 :(得分:3)

只需将自定义标头从nginx添加到节点即可 通常它是

proxy_set_header X-Forwarded-Proto $scheme;

并在节点中显示在request.headers['x-forwarded-proto']

参考文献: