javascript - 如何使用nginx在express上自动访问https协议(protocol)

标签 javascript node.js reactjs amazon-web-services https

我正在运行带有express模块​​的服务器nodeJs。网站是由React.js制作的,它是服务器端渲染。

我有域名:www.example.com、Route53,并应用了负载均衡器 AWS 证书管理器。

问题是当我输入 url http://www.example.com 时,我不知道如何自动访问 https://协议(protocol)

现在,我可以访问每个网址,如 http://www.example.comhttps://www.example.com

我找到了解决方案:

app.use (function (enter code herereq, res, next) {
    if (req.secure) {
        next();
    } else {
        res.redirect('https://' + req.headers.host + req.url);
    }
});

但它不起作用...

什么是好方法???

<小时/>

更新

  1. 如果使用nodejs和express,如何设置端口? Express 阻止端口 80,所以我使用 sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000 。连接端口是常用方法吗?

  2. 我有使用 SSL (ACM) 的负载均衡器,使用的端口是 80、443。 如何直接访问“http”或“https”应该访问https。

最佳答案

部署 NodeJS 应用程序时,建议在 Node 服务器前面使用 Nginx 或 Apache 等 Web 服务器作为代理,用于 gzip 编码、静态文件服务、HTTP 缓存、SSL 处理、负载平衡等。

  • 一种选择是在代理级别进行重定向
  • 在 AWS 中,另一个选择是使用 Cloudfront 和 http 到 https 重定向来实现源行为(还可以在边缘位置级别缓存静态内容)

关于javascript - 如何使用nginx在express上自动访问https协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44267666/

相关文章:

javascript - angularjs http.POST 不包含数据

c# - 将编辑的 html 文件保存到特定文件夹

javascript - 需要帮助找出我的日期范围创建有什么问题

javascript - 具有嵌套关系的 TypeORM findOne

node.js - 使用 grunt 时是否有必要为每个项目创建 node_modules 文件夹

node.js - Icecast:我有奇怪的行为,重复轨道结束,以及我的 Icecast 服务器的音高变化

javascript - "Type ' { child : Element[]; pictureUrl: string; } ' is not assignable to type ' IntrinsicAttributes & { children? : react 节点; }'

javascript - 如何将div内容以字符串格式复制到剪贴板

javascript - 如何通过 Javascript/React 中的 props 对使用 map 方法的数组进行排序

javascript - javascript代码和IIS发布中的asp.net mvc url操作