我第一次学习关于容器和码头的知识。我已经成功地部署了一个node.js应用程序,但是我不确定如何设置HTTPS。
我应该使用docker镜像部署SSL证书,还是使用反向代理(如nginx )更好?
发布于 2019-11-25 10:09:35
使用nginx。它将使您的解决方案变得灵活和可扩展,而不需要编写一行代码。
推理:
1)如果您决定使用LetsEncrypt,那么您将需要重新启动(或热重新加载)您的SSL传输层。在node.js中实现证书的热重新加载(同时保持websocket连接处于活动状态)将需要额外的工作,但可以通过单个bash命令(从certbot hook启动)来完成
systemctl reload nginx
或
/etc/init.d/nginx reload
2)单个域名仅向全球提供API接口的情况很少。最有可能的是,您还需要为前端提供静态文件。在node.js端编写代码来服务静态文件是没有意义的,因为nginx可以免费做到这一点(也就是说,不需要编写任何代码)。
3)如果你决定使用额外的技术来扩展你的服务,比如使用php/java/其他后端技术,你只需要在nginx配置中添加几行代码,而不是实现向其他服务的请求转发。
4) ...
@ all,请随意扩展原因,这样后来来的人就会看到这种架构方法的所有好处。
https://stackoverflow.com/questions/58924627
复制