我想在前端Web服务器后面运行perl6 / raku Cro应用程序作为服务。
cro runsegfaults和重新启动后,仅运行将无法处理重新启动。
以前,在perl5中我使用过FastCGI-但是Cro::HTTP::Server的Cro::HTTP::Server.new().start()习惯用法似乎与FastCGI :: Native的while $fcgi.accept() {}示例不兼容。
由service.p6生成的cro stub确实具有SIGINT处理程序,但是我不确定这是否足以在systemctl服务中指向它,即
[Service]
ExecStart = /path/to/service.p6
Run Code Online (Sandbox Code Playgroud)
人们目前如何托管Cro应用程序?
Jon*_*ton 12
cro run 旨在用作开发工具,而不是部署工具,因此,对于托管服务而言,确实不是一个好的选择。
我直接处理的所有Cro服务都经过容器化(此处提供了一些指导),然后在托管的Kubernetes集群上运行。Kubernetes负责自动重启,推出新版本等工作。我还知道docker-compose可以使用Kubernetes代替Kubernetes,尽管我相信它也主要被认为是一种开发工具,但我认为它可以起作用。
如果将其systemctl配置为始终重新启动,则将其设置为服务也应该可以正常工作。但是,似乎您想处理SIGTERM干净关闭而不是工作SIGINT(处理这两个都没错)。
我也确实在Cro的前面放置了一个前端Web服务器(使用Apache,尽管nginx也是一个不错的选择),并且还使用content-control它对静态内容进行了一些缓存(在我的路由中描述了可访问性)。