Raku Croアプリを永続的なサービスとして実行する


11

フロントエンドウェブサーバーの背後にあるサービスとしてperl6 / raku Croアプリを実行したいのですが。

実行cro runすると、segfaultsと再起動後の再起動は処理されません。

以前はperl5でFastCGIを使用していましたが、Cro::HTTP::Server's Cro::HTTP::Server.new().start()イディオムはFastCGI :: Nativeのwhile $fcgi.accept() {}例と互換性がないように見えます。

service.p6生成されcro stubていないSIGINT私は、この中でポイントにそれに十分であるかどうかわからないんですが、ハンドラをsystemctlサービス、すなわち

[Service]
ExecStart = /path/to/service.p6

現在、人々はどのようにCroアプリをホストしていますか?

回答:


12

cro run はデプロイメントツールではなく開発ツールとして意図されているため、実際にサービスをホストするための良い選択ではありません。

私が直接担当するすべてのCroサービスはコンテナー化され(ここでのいくつかのガイダンス)、ホストされているKubernetesクラスターで実行されます。Kubernetesは、自動再起動、新しいバージョンのロールアウトなどを処理しますdocker-compose。Kubernetesの代わりに使用されていることも知っています。

systemctl常に再起動するように構成されていれば、サービスとして設定することもできます。ただし、クリーンなシャットダウンが機能するように処理SIGTERMする必要があるようですSIGINT(両方の処理に問題はありません)。

また、フロントエンドWebサーバーをCroの前に配置し(Apacheを使用しますが、nginxも良い選択です)、静的コンテンツのキャッシングにも使用します(content-control経路でキャッシュ可能性を説明するために使用します)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.