为了减少CORS的问题,并且能够使用一个SSL证书,我想用一个域运行所有flynn应用程序:
我的“外部”服务
内部事务
$ flynn路线(例如)
http:api.service.example.com api
http:frontend.service.example.com frontend
http:docs.service.example.com docs
... 为了保持简单,我的想法是使用NGINX作为反向代理来处理路由和SSL处理-但是我应该把它放在哪里呢?
我可以添加一个NGINX作为一个flynn应用程序来侦听example.com,然后利用location和proxy_pass特性。但是,当NGINX从https://example.com转到http://frontend.service.example.com时,这里没有SSL --对吗?
如何确保,NGINX的路线仅限于“内部”?是否有更好的方法与弗林-或只是使用dokku。
发布于 2017-11-24 15:38:32
您可以使用内置特性使用Flynn来实现这一点,没有必要使用外部反向代理。
首先,使用有效的TLS证书添加example.com:
flynn -a frontend route add http example.com --tls-cert cert_chain.pem --tls-key cert_key.pemcert_chain.pem文件应该包含PEM编码的证书,然后是将链构建到受信任的根所需的一个或多个中间证书。
cert_key.pem文件应该包含一个PEM编码的私钥(没有加密).
然后为其他应用程序添加一个基于路径的路径。路径将被视为前缀,因此所有子路径也将与路由匹配,而您刚才添加的TLS证书将用于所有这些路径,因为它们具有相同的域:
flynn -a api route add http example.com/api
flynn -a admin route add http example.com/admin
flynn -a docs route add http example.com/docs
flynn -a static route add http example.com/static只有基域的第一个路由将用于所有其他路径。
https://stackoverflow.com/questions/47470042
复制相似问题