From 6e1b6cd81e57e9fd7587c6aa6615d82bf8f92a3f Mon Sep 17 00:00:00 2001 From: Gregory Colpart Date: Sun, 26 Aug 2018 00:18:25 +0200 Subject: [PATCH] ajout infos sur puma et unicorn --- HowtoRails.md | 57 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 8 deletions(-) diff --git a/HowtoRails.md b/HowtoRails.md index 7f3f82cc..d5480a70 100644 --- a/HowtoRails.md +++ b/HowtoRails.md @@ -55,7 +55,6 @@ bundler (1.16.3) […] ~~~ - ### Installation avec ruby système Cela permet de bénéficier des mises à jour de sécurité de Ruby, tout en gérant les Gems par utilisateur. @@ -216,20 +215,61 @@ Pour une utilisation en production d'une application Rails, on peut utiliser plu ### Puma -[Puma](http://puma.io/) est... +[Puma](http://puma.io/) est un serveur web pour Ruby orienté pour la performance et le traitement en parallèle. +Il peut s'installer par package (`apt install puma`) ou par Gem. -TODO +~~~ +$ gem install puma + +$ cd projet +$ puma -S puma.state -b tcp://127.0.0.1:3042 -b unix:///tmp/puma.sock +Puma starting in single mode... +* Version 3.6.0 (ruby 2.3.3-p222), codename: Sleepy Sunday Serenity +* Min threads: 5, max threads: 5 +* Environment: development +* Listening on tcp://127.0.0.1:3042 +* Listening on unix:///tmp/puma.sock +Use Ctrl-C to stop + +^C- Gracefully stopping, waiting for requests to finish +=== puma shutdown: 2018-08-25 23:15:36 +0200 === +- Goodbye! +~~~ + +On peut également créer un fichier de paramètres *puma.rb* que l'on indiquera via `-F puma.rb` : + +~~~ +#!/usr/bin/env puma + +directory '/home/foo/project' +environment 'production' +bind 'unix:///tmp/puma.sock' +port ENV.fetch("PORT") { 3042 } +[…] +~~~ + +On peut créer des unités systemd pour gérer cela : ### Unicorn -[Unicorn](https://bogomips.org/unicorn/) est... +[Unicorn](https://bogomips.org/unicorn/) est un serveur web pour applications Rack conçu pour les clients rapides et optimisé pour Unix. +Il peut s'installer par package (`apt install unicorn`) ou par Gem. -TODO +~~~ +$ gem install unicorn + +$ cd projet +$ unicorn -l 127.0.0.1:3042 +I, [2018-08-26T00:05:09.967114 #2133] INFO -- : listening on addr=127.0.0.1:3042 fd=9 +I, [2018-08-26T00:05:09.967275 #2133] INFO -- : worker=0 spawning... +I, [2018-08-26T00:05:09.967786 #2133] INFO -- : master process ready +I, [2018-08-26T00:05:09.968015 #2135] INFO -- : worker=0 spawned pid=2135 +I, [2018-08-26T00:05:09.968129 #2135] INFO -- : Refreshing Gem list +[…] +~~~ ### Passenger -TODO : à tester / ajuster - [Passenger](https://www.phusionpassenger.com/) est un serveur d'application qui propose des fonctionnalités avancées. On peut l'installer sous forme de Gem pour le développement : @@ -237,6 +277,7 @@ On peut l'installer sous forme de Gem pour le développement : ~~~ $ gem install passenger +$ cd projet $ passenger start =============== Phusion Passenger Standalone web server started =============== Environment: development @@ -266,7 +307,7 @@ Par défaut, Passenger est activé pour tous les sites d'Apache et propose une a PassengerTempDir /var/tmp/ PassengerUploadBufferDir /var/tmp # S'assurer que les permissions sur le dossier permettent à Apache d'écrire dedans - # cf. + # cf. http://modrails.com/documentation/Users%20guide%20Apache.html#PassengerUploadBufferDir # C'est surtout important avec Apache ITK ! ~~~