From: Jeremy Evans <code@jeremyevans.net>
To: Eric Wong <e@80x24.org>
Cc: unicorn-public@bogomips.org
Subject: Re: Support default_middleware configurator method
Date: Thu, 13 Sep 2018 17:00:26 -0700 [thread overview]
Message-ID: <20180914000026.GG48926@jeremyevans.local> (raw)
In-Reply-To: <20180913223407.GA44494@ailurophile>
On 09/13 10:34, Eric Wong wrote:
> Jeremy Evans <code@jeremyevans.net> wrote:
> > I was originally looking for a way to turn off default middleware
> > without having to specify the -N command line option every time.
> > After reading the Unicorn.builder code, I thought it may be
> > possible to do this by specifying the option as an embedded option
> > in the rackup file, via the following line at the top of the file:
> >
> > #\-N
> >
> > Unfortunately, while this works for many other command line options,
> > because of Unicorn's internals, this doesn't work for -N, as
> > embedded options are not parsed until after the check for skipping
> > default middleware is made.
>
> That was intentional, I think. We should never be encouraging
> users to pollute config.ru and make it difficult to migrate/test
> other servers.
>
> > This patch makes the embedded -N option work, as well as adds a
> > default_middleware configuration file option
>
> I really hate the -N vs RACK_ENV=none redundancy... Is -N still
> needed for Rails or something else while keeping RACK_ENV unset?
I use RACK_ENV to configure the environment for my web applications, and
for a few reasons have used development/test/production as the
environment names. I try as much as possible to have the development
environment mirror the production environment unless there is a good
reason to be different, and would like to avoid adding all of the
middleware Unicorn adds in development mode.
Additionally, let's say I want to add Rack::CommonLogger to both
development and production environments. So in my config.ru, I add:
use Rack::CommonLogger, Logger.new($stderr)
Now I load up the development version. Then I have two common loggers
in development, with all requests being logged twice. I currently
work around this by doing something like:
unless ENV['RACK_ENV'] == 'development'
use Rack::CommonLogger, Logger.new($stderr)
end
I would like to avoid having to do that.
> Worse case is we only support default_middleware as a config
> option (but I prefer not to add more options). Embedded -N support
> is an anti-feature which leads to lock-in.
I don't really care about embedded -N support. I actually didn't even
know embedded command file options were possible until I saw the
comment in Unicorn.builder. I just want some way to specify not to
load default middleware without requiring a command line option each
time.
Thanks,
Jeremy
next prev parent reply other threads:[~2018-09-14 0:00 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-13 19:20 Support default_middleware configurator method Jeremy Evans
2018-09-13 22:34 ` Eric Wong
2018-09-14 0:00 ` Jeremy Evans [this message]
2018-09-14 10:56 ` Eric Wong
2018-09-14 15:03 ` Jeremy Evans
2018-09-19 7:39 ` Eric Wong
2018-09-21 0:21 ` Jeremy Evans
2018-09-23 8:52 ` Eric Wong
2018-09-21 0:34 ` [PATCH 2/1] tests: ensure -N/--no-default-middleware not supported in config.ru Eric Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://yhbt.net/unicorn/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180914000026.GG48926@jeremyevans.local \
--to=code@jeremyevans.net \
--cc=e@80x24.org \
--cc=unicorn-public@bogomips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhbt.net/unicorn.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).