node.js - 与从 Bluehost NodeJS 服务器本地托管的 NodeJS 服务器通信的最佳实践?
问题描述
我有一个在 Bluehost 服务器上运行的 Web 应用程序。我正在尝试检索托管在本地服务器上的文件。在本地服务器上,我有端口转发和 NodeJS 在端口 3000 上侦听。我也可以做 80,但从我读过的内容来看,这并不安全。
我遇到的问题主要是本地节点实例的 SSL 证书。Web 应用程序需要向 https:// 源发出 post 请求。
有哪些最佳实践方法可以完成这项工作?我听说过安装 Apache 并将 ProxyPass 运行到端口 3000,但我仍然担心端口 80 将没有 SSL。任何帮助,将不胜感激!!
解决方案
首先值得注意的是,托管 Web 服务的方法有很多。
Node 可以处理 https 连接,您应该阅读本机 https 模块文档以了解其工作原理。
我倾向于使用 Nginx(尽管 apache 很棒并且是经过实战考验的解决方案)作为节点的代理服务器,因为总的来说,我发现它加快了产品上线的过程。它还允许您从节点服务器中提取潜在需求,例如缓存和 SSL,因此您的节点应用程序可以只专注于业务需求。
如果您选择代理服务器,Nginx(和其他)具有将处理 SSL 证书的模块。网上有很多关于如何设置的文档。
需要记住的是 PORT 80 和 3000 是流量的连接点。如果您将应用程序绑定并公开给它们,您将只能在这些端口上与服务器交互。如果没有任何东西暴露给 PORT 80,那么连接尝试就会失败。
我倾向于采用的最佳实践是:
- 现在没有理由不使用 SSL,标准是在端口 443 上公开 https 服务器。
- 如果您选择公开端口 80,请将所有流量重定向到 443。这样可以保证安全连接。
推荐阅读
- javascript - Next.js 错误序列化从`getServerSideProps`返回的`.res`
- python-3.x - 具有大块大小的多处理 pool.imap 正在跳过处理可迭代中的某些记录
- apexcharts - ApexCharts 中的矩形注释
- python - 成功运行pyinstaller后无法运行可执行文件
- php - 如何映射数组?
- google-apps-script - 如何在数组公式中使用自定义函数 ARRAYREPLACE()?[谷歌表格]
- c++ - 如何在 C++ 中的队列中实现 try_pop() 方法?
- python - 显示使用 pytorch 数据加载器加载的图像
- javascript - 从 iframe js 中获取容器域
- fuchsia - Fuchsia Emulator 开始读取 SDK 版本出错