SlideShare a Scribd company logo
Mastering Nginx Converted Dimitri Aivaliotis
download
https://ebookbell.com/product/mastering-nginx-converted-dimitri-
aivaliotis-54165000
Explore and download more ebooks at ebookbell.com
Here are some recommended products that we believe you will be
interested in. You can click the link to download.
Mastering Nginx Dimitri Aivaliotis
https://ebookbell.com/product/mastering-nginx-dimitri-
aivaliotis-4332426
Mastering Nginx 1st Edition Dimitri Aivaliotis
https://ebookbell.com/product/mastering-nginx-1st-edition-dimitri-
aivaliotis-230304560
Mastering Collaboration In A Product Team 70 Techniques To Help Teams
Build Better Products 1st Edition Natasha Hampshire Glaudia Califano
David Spinks
https://ebookbell.com/product/mastering-collaboration-in-a-product-
team-70-techniques-to-help-teams-build-better-products-1st-edition-
natasha-hampshire-glaudia-califano-david-spinks-44875474
Mastering Collaboration In A Product Team 70 Techniques To Help Teams
Build Better Products 1st Edition Natasha Hampshire
https://ebookbell.com/product/mastering-collaboration-in-a-product-
team-70-techniques-to-help-teams-build-better-products-1st-edition-
natasha-hampshire-44915468
Mastering Gnome A Beginners Guide 1st Edition Sufyan Bin Uzayr
https://ebookbell.com/product/mastering-gnome-a-beginners-guide-1st-
edition-sufyan-bin-uzayr-46082774
Mastering Flutter A Beginners Guide 1st Edition Sufyan Bin Uzayr
https://ebookbell.com/product/mastering-flutter-a-beginners-guide-1st-
edition-sufyan-bin-uzayr-46082778
Mastering Rust A Beginners Guide 1st Edition Sufyan Bin Uzayr
https://ebookbell.com/product/mastering-rust-a-beginners-guide-1st-
edition-sufyan-bin-uzayr-46151622
Mastering Rust A Beginners Guide 1st Edition Sufyan Bin Uzayr
https://ebookbell.com/product/mastering-rust-a-beginners-guide-1st-
edition-sufyan-bin-uzayr-46191750
Mastering Primary Science Amanda Mccrory Kenna Worthington
https://ebookbell.com/product/mastering-primary-science-amanda-
mccrory-kenna-worthington-46236134
Mastering Nginx Converted Dimitri Aivaliotis
Mastering Nginx Converted Dimitri Aivaliotis
Table of Contents
Mastering NGINX
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Installing NGINX and Third-Party Modules
Installing NGINX using a package manager
CentOS
Debian
Installing NGINX from source
Preparing a build environment
Compiling from source
Table: Common configure options
Table: Configure options for optimization
Configuring for web or mail service
Configure options for a mail proxy
Table: Mail configure options
Configure the options to specify paths
Table: HTTP configure options
Enabling various modules
Table: HTTP module configure options
Disabling unused modules
Table: Disable configure options
Finding and installing third-party modules
Putting it all together
Summary
2. A Configuration Guide
The basic configuration format
NGINX global configuration parameters
Table: Global configuration directives
Using include files
The HTTP server section
Client directives
Table: HTTP client directives
File I/O directives
Table: HTTP file I/O directives
Hash directives
Table: HTTP hash directives
Socket directives
Table: HTTP socket directives
Sample configuration
The virtual server section
Table: listen parameters
Locations – where, when, and how
Table: Location modifiers
Table: Location-only directives
The mail server section
Table: Mail module directives
Table: Mail SSL directives
Full sample configuration
Summary
3. Using the Mail Module
Basic proxy service
POP3 service
IMAP service
SMTP service
Using SSL/TLS
Complete mail example
Authentication service
Combining with memcached
Interpreting log files
Operating system limits
Summary
4. NGINX as a Reverse Proxy
Introduction to reverse proxying
The proxy module
Table: Proxy module directives
Legacy servers with cookies
The upstream module
Table: Upstream module directives
Keepalive connections
Load-balancing algorithms
Types of upstream servers
Single upstream server
Multiple upstream servers
Non-HTTP upstream servers
Memcached upstream servers
FastCGI upstream servers
SCGI upstream servers
uWSGI upstream servers
Converting an "if"-fy configuration to a more modern interpretation
Using error documents to handle upstream problems
Determining the client's real IP address
Summary
5. Reverse Proxy Advanced Topics
Security through separation
Encrypting traffic with SSL
Authenticating clients using SSL
Blocking traffic based on originating IP address
Isolating application components for scalability
Reverse proxy performance tuning
Buffering
Table: Proxy module buffering directives
Caching
Table: Proxy module caching directives
Storing
Compressing
Table: Gzip module directives
Summary
6. The NGINX HTTP Server
NGINX's architecture
The HTTP core module
The server
Table: HTTP server directives
Logging
Table: HTTP logging directives
Table: Log format variables
Finding files
Table: HTTP file-path directives
Name resolution
Table: Name resolution directives
Client interaction
Table: HTTP client interaction directives
Using limits to prevent abuse
Table: HTTP limits directives
Restricting access
Table: HTTP access module directives
Streaming media files
Table: HTTP streaming directives
Predefined variables
Table: HTTP variables
Using NGINX with PHP-FPM
Table: FastCGI directives
An example Drupal configuration
Wiring NGINX and uWSGI together
An example Django configuration
Summary
7. NGINX for the Developer
Caching integration
No application caching
Caching in the database
Table: Memcached module directives
Caching in the filesystem
Table: Header modifying directives
Changing content on-the-fly
The addition module
Table: HTTP addition module directives
The sub module
Table: HTTP sub module directives
The xslt module
Table: HTTP XSLT module directives
Using Server Side Includes
Table: Server Side Includes directives
Table: Server Side Includes commands
Decision-making in NGINX
Table: Perl module directives
Creating a secure link
Generating images
Table: Image filter directives
Tracking website visitors
Table: UserID module directives
Preventing inadvertent code execution
Summary
8. Troubleshooting Techniques
Analyzing log files
Error log file formats
Error log file entry examples
Configuring advanced logging
Debug logging
Switching binaries at runtime
Using access logs for debugging
Common configuration errors
Using if instead of try_files
Using if as a hostname switch
Not using the server context to best effect
Operating system limits
File descriptor limits
Network limits
Performance problems
Using the Stub Status module
Summary
A. Directive Reference
Table: Directive reference
B. Rewrite Rule Guide
Introducing the rewrite module
Table: Rewrite module directives
Creating new rewrite rules
Translating from Apache
Rule #1: Replace directory and file existence checks with
try_files
Rule #2: Replace matches against REQUEST_URI with a
location
Rule #3: Replace matches against HTTP_HOST with a server
Rule #4: Replace RewriteCond with if for variable checks
Summary
C. The NGINX Community
Mailing list
IRC channel
Web resources
Writing a good bug report
Summary
D. Persisting Solaris Network Tunings
Index
Mastering NGINX
Mastering NGINX
Copyright © 2013 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in
a retrieval system, or transmitted in any form or by any means,
without the prior written permission of the publisher, except in the
case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure
the accuracy of the information presented. However, the information
contained in this book is sold without warranty, either express or
implied. Neither the author, nor Packt Publishing, and its dealers and
distributors will be held liable for any damages caused or alleged to
be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information
about all of the companies and products mentioned in this book by
the appropriate use of capitals. However, Packt Publishing cannot
guarantee the accuracy of this information.
First published: March 2013
Production Reference: 1070313
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK..
ISBN 978-1-84951-744-7
www.packtpub.com
Cover Image by Asher Wishkerman (<wishkerman@hotmail.com>)
Credits
Author
Dimitri Aivaliotis
Reviewers
Yasir Adnan
Andrew Alexeev
Antonio P. P. Almeida
Rainer Duffner
Acquisition Editor
Usha Iyer
Lead Technical Editor
Azharuddin Sheikh
Technical Editors
Varun Pius Rodrigues
Lubna Shaikh
Project Coordinator
Abhishek Kori
Proofreader
Aaron Nash
Indexer
Tejal Soni
Graphics
Aditi Gajjar
Production Coordinator
Manu Joseph
Cover Work
Manu Joseph
About the Author
Dimitri Aivaliotis works as a Systems Architect at a hosting provider
in Zurich, Switzerland. His career has taken him from building a Linux-
based computer network for a school up through dual-datacenter
high-availability infrastructures for banks and online portals. He has
spent over a decade solving his customers’ problems and discovered
NGINX along the way. He uses the software daily to provide web
serving, proxying, and media-streaming services to his customers.
Dimitri graduated summa cum laude with a BS in Physics from
Rensselaer Polytechnic Institute and received an MS in Management
Information Systems at Florida State University.
This is his first book.
I would like to thank John Blackwell and Phil Margolis for reading
early drafts of the manuscript. Their criticism and tips have helped
me greatly and made this a better book. I would also like to thank
the technical reviewers for providing constructive feedback and
pointing out errors I have made along the way. Any remaining
errors are of course my own.
The team at Packt Publishing has been really supportive in getting
this project off the ground.Their faith in me as a writer has
bolstered me during the dark times of missed deadlines.
The knowledge and support of the NGINX, Inc. team has been
instrumental in filling in the gaps in my understanding of how
NGINX works. I could not have written this book without them.
An especially heartfelt thanks goes out to my family. My wife and
children have had to cope with my many writing sessions. Their
patience during this time is greatly appreciated.
About the Reviewers
Yasir Adnan lives in Dhaka, Bangladesh. He is a computer science
student. He also works as a freelance programmer. He has worked
on both mobile and web applications. Nowadays he mainly develops
mobile applications. He can be reached at
<yasiradnan@outlook.com>.
Andrew Alexeev is a co-founder of NGINX, Inc.—the high
performance web company behind the NGINX web server. Prior to
joining NGINX, Inc. at the beginning of 2011, Andrew worked in the
Internet industry and in a variety of ICT divisions for enterprises.
Andrew holds a diploma in Electronics from St. Petersburg
Electrotechnical University and an executive MBA from Antwerp
Management School.
Antonio P.P. Almeida (@perusio) has been obsessed with NGINX
and high-performance web stacks ever since he was trying to
develop for Drupal on a battered 1.3 GHz Centrino-based laptop and
Apache’s resource appetite made NGINX inevitable. He has been
learning how to get the most out of NGINX in all possible kinds of
applications, in particular all the subtleties of NGINX configuration
language. He lives and works in Paris. Besides NGINX, his other main
obsessions are obscure late Italian medieval music, cinema, and how
to make Drupal more awesome.
Rainer Duffner received a degree in Information Systems from the
University of Applied Science in Konstanz, Germany, and currently
works as a Systems Engineer at EveryWare AG, where he helps
customers get the most out of their managed dedicated FreeBSD,
Linux, and Solaris servers. He lives in a small town next to Zurich,
Switzerland, and enjoys spending his free time on a mountain bike
around Zurich and the Swiss mountains.
I’d like to thank Dimitri for the opportunity to help review this fine
book. It’s a useful resource all along.
www.PacktPub.com
Support files, eBooks, discount
offers and more
You might want to visit www.PacktPub.com for support files and
downloads related to your book.
Did you know that Packt offers eBook versions of every book
published, with PDF and ePub files available? You can upgrade to the
eBook version at www.PacktPub.com and as a print book customer,
you are entitled to a discount on the eBook copy. Get in touch with us
at <service@packtpub.com> for more details.
At www.PacktPub.com, you can also read a collection of free
technical articles, sign up for a range of free newsletters and receive
exclusive discounts and offers on Packt books and eBooks.
http://PacktLib.PacktPub.com
Do you need instant solutions to your IT questions? PacktLib is
Packt’s online digital book library. Here, you can access, read and
search across Packt’s entire library of books.
Why Subscribe?
Fully searchable across every book published by Packt
Copy and paste, print and bookmark content
On demand and accessible via web browser
Free Access for Packt account holders
If you have an account with Packt at www.PacktPub.com, you can
use this to access PacktLib today and view nine entirely free books.
Simply use your login credentials for immediate access.
Dedicated to my father, who has always said I can do anything I set
my mind to.
Preface
NGINX is a high-performance web server designed to use very few
system resources. There are many how-to's and example
configurations floating around on the Web. This guide will serve to
clarify the murky waters of NGINX configuration. In doing so you will
learn how to tune NGINX for various situations, what some of the
more obscure configuration options do, and how to design a decent
configuration to match your needs.
You will no longer feel the need to copy-paste a configuration snippet
because you will understand how to construct a configuration file to
do exactly what you want it to do. This is a process, and there will be
bumps along the way, but with the tips explained in this book you will
feel comfortable writing an NGINX configuration file by hand. In case
something doesn't work as expected, you will be able to debug the
problem yourself or at least be capable of asking for help without
feeling like you haven't given it a try yourself.
This book is written in a modular fashion. It is laid out to help you get
to the information you need as quickly as possible. Each chapter is
pretty much a standalone piece. Feel free to jump in anywhere you
feel you need to get more in-depth about a particular topic. If you feel
you have missed something major, go back and read the earlier
chapters. They are constructed in a way to help you grow your
configuration piece-by-piece.
What this book covers
Chapter 1, Installing NGINX and Third-Party Modules, teaches you
how to install NGINX on your operating system of choice and how to
include third-party modules in your installation.
Chapter 2, A Configuration Guide, explains the NGINX configuration
file format. You will learn what each of the different contexts are for,
how to configure global parameters, and what a location is used for.
Chapter 3, Using the Mail Module, explores NGINX's mail proxy
module, detailing all aspects of its configuration. An example
authentication service is included in the code for this chapter.
Chapter 4, NGINX as a Reverse Proxy, introduces the concept of a
reverse proxy and describes how NGINX fills that role.
Chapter 5, Reverse Proxy Advanced Topics, delves deeper into
using NGINX as a reverse proxy to solve scaling issues and
performance problems.
Chapter 6, The NGINX HTTP Server, describes how to use the
various modules included with NGINX to solve common web serving
problems.
Chapter 7, NGINX for the Developer, shows how NGINX can be
integrated with your application to deliver content to your users more
quickly.
Chapter 8, Troubleshooting Techniques, investigates some common
configuration problems, how to debug a problem once it arises, and
makes some suggestions for performance tuning.
Appendix A, Directive Reference, provides a handy reference for the
configuration directives used throughout the book, as well as a
selection of others not previously covered.
Appendix B, Rewrite Rule Guide, describes how to use the NGINX
rewrite module and describes a few simple steps for converting
Apache-style rewrite rules into ones NGINX can process.
Appendix C, Community, introduces you to the online resources
available to seek more information.
Appendix D, Persisting Solaris Network Tunings, details what is
necessary to persist different network tuning changes under Solaris
10 and above.
What you need for this book
Any modern Linux PC should be sufficient to run the code samples in
the book. The installation instructions are given in each chapter that
uses code samples. Basically, it boils down to:
A build environment: Compiler, header files, and a few more
NGINX: Most recent version should be fine
Ruby: Best installed from https://rvm.io
Perl: Default version should be fine
Who this book is for
This book is for experienced systems administrators or systems
engineers, familiar with installing and configuring servers to meet
specific needs. You do not need to have experience using NGINX
already.
Conventions
In this book, you will find a number of styles of text that distinguish
between different kinds of information. Here are some examples of
these styles, and an explanation of their meaning.
Code words in text are shown as follows: "NGINX will attempt to
build a dependent library statically if you include a ––with-<library>=
<path> option to configure."
A block of code is set as follows:
$ export BUILD_DIR=`pwd`
$ export NGINX_INSTALLDIR=/opt/nginx
$ export VAR_DIR=/home/www/tmp
$ export LUAJIT_LIB=/opt/luajit/lib
$ export LUAJIT_INC=/opt/luajit/include/luajit-
2.0
When we wish to draw your attention to a particular part of a code
block, the relevant lines or items are set in bold:
$ export BUILD_DIR=`pwd`
$ export NGINX_INSTALLDIR=/opt/nginx
$ export VAR_DIR=/home/www/tmp
$ export LUAJIT_LIB=/opt/luajit/lib
$ export LUAJIT_INC=/opt/luajit/include/luajit-
2.0
Any command-line input or output is written as follows:
$ mkdir $HOME/build
$ cd $HOME/build && tar xzf nginx-<version-
number>.tar.gz
New terms and important words are shown in bold. Words that you
see on the screen, in menus or dialog boxes for example, appear in
the text like this: "clicking the Next button moves you to the next
screen".
Note
Warnings or important notes appear in a box like this.
Tip
Tips and tricks appear like this.
Reader feedback
Feedback from our readers is always welcome. Let us know what
you think about this book—what you liked or may have disliked.
Reader feedback is important for us to develop titles that you really
get the most out of.
To send us general feedback, simply send an e-mail to
<feedback@packtpub.com>, and mention the book title via the subject
of your message.
If there is a topic that you have expertise in and you are interested in
either writing or contributing to a book, see our author guide on
www.packtpub.com/authors.
Customer support
Now that you are the proud owner of a Packt book, we have a
number of things to help you to get the most from your purchase.
Downloading the example code
You can download the example code files for all Packt books you
have purchased from your account at http://www.PacktPub.com. If
you purchased this book elsewhere, you can visit
http://www.PacktPub.com/support and register to have the files e-
mailed directly to you.
Errata
Although we have taken every care to ensure the accuracy of our
content, mistakes do happen. If you find a mistake in one of our
books—maybe a mistake in the text or the code—we would be
grateful if you would report this to us. By doing so, you can save
other readers from frustration and help us improve subsequent
versions of this book. If you find any errata, please report them by
visiting http://www.packtpub.com/support, selecting your book,
clicking on the errata submission form link, and entering the details
of your errata. Once your errata are verified, your submission will be
accepted and the errata will be uploaded on our website, or added to
any list of existing errata, under the Errata section of that title. Any
existing errata can be viewed by selecting your title from
http://www.packtpub.com/support.
Piracy
Piracy of copyright material on the Internet is an ongoing problem
across all media. At Packt, we take the protection of our copyright
and licenses very seriously. If you come across any illegal copies of
our works, in any form, on the Internet, please provide us with the
location address or website name immediately so that we can pursue
a remedy.
Please contact us at <copyright@packtpub.com> with a link to the
suspected pirated material.
We appreciate your help in protecting our authors, and our ability to
bring you valuable content.
Questions
You can contact us at <questions@packtpub.com> if you are having a
problem with any aspect of the book, and we will do our best to
address it.
Chapter 1. Installing NGINX and
Third-Party Modules
NGINX was first conceived to be an HTTP server. It was created to
solve the C10K problem, described by Daniel Kegel at
http://www.kegel.com/c10k.html, of designing a web server to handle
10,000 simultaneous connections. NGINX is able to do this through its
event-based connection-handling mechanism, and will use the OS-
appropriate event mechanism in order to achieve this goal.
Before we begin exploring how to configure NGINX, we will first
install it. This chapter details how to install NGINX itself and how to
get the correct modules installed and configured. NGINX is modular
by design, and there is a rich community of third-party module
developers who have added functionality to the core NGINX server by
creating modules that can be compiled into the server and installed
along with it.
In this chapter, we will cover:
Installing NGINX using a package manager
Installing NGINX from source
Configuring for web or mail service
Enabling various modules
Finding and installing third-party modules
Putting it all together
Installing NGINX using a
package manager
Chances are that your operating system of choice already provides
nginx as a package. Installing it is as simple as using your package
manager's commands:
Linux (deb-based)
sudo apt-get install nginx
Linux (rpm-based)
sudo yum install nginx
FreeBSD
sudo pkg_install -r nginx
Note
The sudo command is representative of what you need to
execute on your operating system to achieve superuser
('root') privileges. If your operating system supports RBAC
(Role-based access control), then you would use a
different command, such as 'pfexec' to achieve the same
goal.
These commands will install NGINX into standard locations, specific
to your operating system. This is the preferred installation method if
you need to use your operating system's packages.
The NGINX core team also provides binaries of the stable version,
available from http://nginx.org/en/download.html. Users of
distributions without an nginx package (such as CentOS), can use
the following instructions to install pre-tested, pre-compiled binaries.
CentOS
Add the NGINX repository to your yum configuration by creating the
following file:
sudo vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$base
arch/
gpgcheck=0
enabled=1
Then install nginx by executing the following command:
sudo yum install nginx
Alternative instructions for installing an nginx-release package are
available at the preceding URL.
Debian
Install the NGINX signing key by downloading it from
http://nginx.org/keys/nginx_signing.key and adding it to the apt
keyring:
sudo apt-key add nginx_signing.key
Append the nginx.org repository to the end of
/etc/apt/sources.list:
vi /etc/apt/sources.list
deb http://nginx.org/packages/debian/ squeeze
nginx
deb-src http://nginx.org/packages/debian/
squeeze nginx
Then install nginx by executing the following command:
sudo apt-get update
sudo apt-get install nginx
If your operating system does not include nginx in its list of available
packages, the version there is too old for what you would like to do,
the packages at nginx.org don't serve your needs, or you would like
to use the "development" release of NGINX, then compiling NGINX
from source is the only other option.
Installing NGINX from source
NGINX downloads are available for two separate branches of NGINX
code—stable and development. The development branch is the one in
which active development is taking place. Here is where new features
will be found and integrated before finding their way into the stable
branch. When a "development" version is released, it has undergone
the same QA and a similar set of functional tests as the stable
branch, so either branch may be used on production systems. The
major difference between the two branches lies in the support of
third-party modules. The internal API may change in the development
release, whereas it stays the same on the stable branch, so
backward compatibility for third-party modules is only available for
stable releases.
Preparing a build environment
In order to compile NGINX from source, certain requirements need to
be met on your system. Besides a compiler, you also need the
OpenSSL and PCRE (Perl Compatible Regular Expressions)
libraries and development headers, if you want to enable the SSL
support and be able to use the rewrite module, respectively.
Depending on your system, these requirements may already be met
in the default installation. If not, you will need to either locate the
appropriate package and install it, or download the source, unpack it,
and point NGINX's configure script to this location.
NGINX will attempt to build a dependent library statically if you
include a –with-<library>=<path> option to configure. You might
want this if you would like to ensure that NGINX is not dependent on
any other part of the system and/or would like to squeeze that extra
bit of performance out of your nginx binary. If you are using features
of external libraries that are only available from a certain version
onwards (for example, the Next Protocol Negotiation TLS extension
available from OpenSSL Version 1.0.1), then you would have to
specify the path to the unpacked sources of that particular version.
There are other, optional, packages that you may provide support for
if you like. These include MD5 and SHA-1 hashing algorithm support,
zlib compression, and libatomic library support. The hashing
algorithms are used in many places in NGINX, for example, to
compute the hash of a URI to determine a cache key. The zlib
compression library is used for delivering gzipped content. If the
atomic_ops library is available, NGINX will use its atomic memory
update operations to implement high-performance memory-locking
code.
Compiling from source
NGINX may be downloaded from http://nginx.org/en/download.html.
Here you will find the source of either branch in the .tar.gz or .zip
format. Unpack the archive into a temporary directory as follows:
$ mkdir $HOME/build
$ cd $HOME/build && tar xzf nginx-<version-
number>.tar.gz
Configure it using the following command:
$ cd $HOME/build/nginx-<version-number> &&
./configure
And compile it as follows:
$ make && sudo make install
When compiling your own nginx binary, you are much more free to
include only what you need. Can you already say under which user
NGINX should run? Do you want to specify the default logfile
locations so that they don't need to be explicitly set in the
configuration? The following table of configure options will help you
design your own binary. These are options that are valid for NGINX
independent of which module is activated.
Table: Common configure options
Option Explanation
--prefix=
<path>
The root of the installation. All other installation paths
are relative to this one.
--sbin-path=
<path>
The path to the nginx binary. If not specified, this will
be relative to the prefix.
--conf-path=
<path>
The path to where nginx will look for its configuration
file, if not specified on the command line.
--error-log-
path=<path>
This is where nginx will write its error logfile, unless
configured otherwise.
--pid-path=
<path>
This is where nginx will write the pid file of the master
process, usually under /var/run.
--lock-path=
<path>
The path to the shared memory mutex lock file.
Option Explanation
--user=
<user>
The user under which the worker processes should
run.
--group=
<group>
The group under which the worker processes should
run.
--with-file-
aio.
Enables asynchronous I/O for FreeBSD 4.3+ and
Linux 2.6.22+
--with-debug This option will enable debug logging. Not
recommended for production systems.
You are also able to compile with optimizations that you may not get
in a packaged installation. This is where the following options can be
especially useful:
Table: Configure options for optimization
Option Explanation
--with-
cc=<path>
If you would like to set a C compiler that is not in your
default PATH.
Option Explanation
--with-
cpp=
<path>
This is the corresponding path to the C preprocessor.
--with-
cc-opt=
<options>
Here is where the path to the necessary include files
may be indicated (-I<path>), as well as optimizations (-
O4) and specifying a 64-bit build.
--with-
ld-opt=
<options>
The options to the linker include library path (-L<path>)
and run path (-R<path>).
--with-
cpu-opt=
<cpu>
A build specific to a particular CPU family may be
specified with this option.
Configuring for web or mail
service
NGINX is unique among high-performing web servers in that it was
also designed to be a mail proxy server. Depending on your goals in
building NGINX, you can configure it for web acceleration, a web
server, a mail proxy, or all of them. It may be beneficial to have one
package that you can install on any server in your infrastructure and
be able to set NGINX's role through configuration, or it may serve
your needs better to have a slimmed-down binary to use in high-
performance environments where every extra KB counts.
Configure options for a mail proxy
The following table specifies configuration options that are unique to
the mail module:
Table: Mail configure options
Option Explanation
--with-mail This will enable the mail module, which is not
activated by default.
--with-
mail_ssl_module
In order to proxy any kind of mail transaction that
uses SSL/TLS, this module will need to be
activated.
Option Explanation
--without-
mail_pop3_module
When enabling the mail module, the POP3
module may be disabled separately.
--without-
mail_imap_module
When enabling the mail module, the IMAP
module may be disabled separately.
--without-
mail_smtp_module
When enabling the mail module, the SMTP
module may be disabled separately.
--without-http This option will completely disable the http
module; use it if you know you only want to
compile in mail support.
For a typical mail proxy, I would recommend configuring NGINX as
follows:
$ ./configure --with-mail --with-mail_ssl_module
--with-openssl=${BUILD_DIR}/openssl-1.0.1c
SSL/TLS is needed nowadays on almost every mail installation and
not having it enabled on a mail proxy robs users of expected
functionality. I've recommended compiling OpenSSL statically so that
there are no dependencies on the operating system's OpenSSL
library. The BUILD_DIR variable referenced in the preceding command
would of course have to be set beforehand.
Configure the options to specify paths
The following table shows what configuration options are available to
the http module, from activating the Perl module to specifying the
location of temporary directories:
Table: HTTP configure options
Option Explanation
--without-http-
cache
When using the upstream module, NGINX can
be configured to cache the contents locally.
This option disables that cache.
--with-
http_perl_module
NGINX configuration can be extended by using
Perl code. This option activates that module.
(Use of this module, however, degrades
performance.)
--with-
perl_modules_path=
<path>
This option specifies the path to additional Perl
modules needed for using the embedded Perl
interpreter. It may also be specified as a
configuration option.
--with-perl=<path> The path to Perl (Version 5.6.1 and higher), if
not found on the default path.
--http-log-path=
<path>
The default path to the HTTP access log.
Option Explanation
--http-client-
body-temp-path=
<path>
When receiving the request from the client, this
is the directory used as a temporary location
for the body of that request. If the WebDAV
module is enabled, it is recommended to set
this path to be on the same filesystem as the
final destination.
--http-proxy-temp-
path=<path>
When proxying, this is the directory used as a
location to store temporary files.
--http-fastcgi-
temp-path=<path>
The location for FastCGI temporary files.
--http-uwsgi-temp-
path=<path>
The location for uWSGI temporary files.
--http-scgi-temp-
path=<path>
The location for SCGI temporary files.
Enabling various modules
Besides the http and mail modules, there are a number of other
modules included in the NGINX distribution. These modules are not
activated per default, but may be enabled by setting the appropriate
configuration option --with-<module-name>_module.
Table: HTTP module configure options
Option Explanation
--with-http_ssl_module If you need to encrypt web traffic, you
will need this option to be able to use
URLs beginning with https. (Requires
the OpenSSL library.)
--with-
http_realip_module
If your NGINX will be behind a L7 load
balancer or other device that passes the
client's IP address in an HTTP header,
you will need to enable this module. For
use in situations where multiple clients
appear to come from one IP address.
--with-
http_addition_module
This module works as an output filter,
enabling you to add content of a
different location before or after that of
the location itself.
Option Explanation
--with-http_xslt_module This module will handle transformations
of XML responses, based on one or
more XSLT stylesheets. (Requires the
libxml2 and libxslt libraries.)
--with-
http_image_filter_module
This module is able to act as a filter on
images, processing them before handing
them over to the client. (Requires the
libgd library.)
--with-http_geoip_module With this module, you are able to set
various variables to use in configuration
blocks to make decisions based on the
geographic location found for a client's
IP address. (Requires the MaxMind
GeoIP library and the corresponding
precompiled database files.)
--with-http_sub_module This module implements a substitution
filter, replacing one string in the
response with another.
Option Explanation
--with-http_dav_module Enabling this module will activate the
configuration directives for using
WebDAV. Note that this module should
only be enabled on a need-to-use basis,
as it could present security problems if
configured incorrectly.
--with-http_flv_module If you need to be able to stream Flash
video files, this module will provide for
pseudo-streaming.
--with-http_mp4_module This module supports pseudo-streaming
for H.264/AAC files.
--with-
http_gzip_static_module
Use this module if you would like to
support sending pre-compressed
versions of static files when the
resource is called without the .gz
ending.
--with-
http_gunzip_module
This module will decompress pre-
compressed content for clients that do
not support gzip encoding.
Option Explanation
--with-
http_random_index_module
If you would like to serve an index file
chosen at random from the files in a
directory, then this module needs to be
enabled.
--with-
http_secure_link_module
This module provides a mechanism to
hash a link to a URL, so that only those
with the proper password would be able
to calculate the link.
--with-
http_stub_status_module
Enabling this module will help you gather
statistics from NGINX itself. The output
can be graphed using RRDtool or
something similar.
As you can see, these are all modules that build upon the http
module, providing extra functionality. Enabling the modules at compile
time should not affect runtime performance at all. Using the modules
later in the configuration is where performance may be impacted.
I would therefore recommend the following configure options for a
web accelerator/proxy:
$ ./configure --with-http_ssl_module --with-
http_realip_module --with-http_geoip_module --
with-http_stub_status_module --with-
openssl=${BUILD_DIR}/openssl-1.0.1c
And the following for a web server:
$ ./configure --with-http_stub_status_module
The difference lies in where NGINX will be faced with clients. The
web acceleration role would take care of terminating SSL requests
as well as dealing with proxied clients and making decisions based on
where a client came from. The web server role would need only
provide default file serving capability.
I would recommend always enabling the stub_status module, as it
provides a means of gathering metrics on how your NGINX is
performing.
Disabling unused modules
There are also a number of http modules that are normally activated,
but may be disabled by setting the appropriate configuration option --
without-<module-name>_module. If you have no use for these
modules in your configuration, you can safely disable them.
Table: Disable configure options
Option Explanation
--without-
http_charset_module
The charset module is responsible
for setting the Content-Type
response header, as well as
converting from one charset to
another.
Option Explanation
--without-http_gzip_module The gzip module works as an
output filter, compressing content
as it's delivered to the client.
--without-http_ssi_module This module is a filter that
processes Server Side Includes. If
the Perl module is enabled, an
additional SSI command (perl) is
available.
--without-http_userid_module The userid module enables NGINX
to set cookies that can be used for
client identification. The variables
$uid_set and $uid_got can then be
logged for user tracking.
--without-http_access_module The access module controls access
to a location based on IP address.
--without-
http_auth_basic_module
This module limits access via HTTP
Basic Authentication.
--without-
http_autoindex_module
The autoindex module enables
NGINX to generate a directory
listing for directories that have no
index file.
Option Explanation
--without-http_geo_module This module enables you to set up
configuration variables based on a
client's IP address and then take
action on the value of those
variables.
--without-http_map_module The map module enables you to
map one variable to another.
--without-
http_split_clients_module
This module creates variables that
can be used for A/B testing.
--without-
http_referer_module
This module enables NGINX to
block requests based on the
Referer HTTP header.
--without-
http_rewrite_module
The rewrite module allows you to
change URIs based on various
conditions.
--without-http_proxy_module The proxy module allows NGINX to
pass requests on to another server
or group of servers.
Option Explanation
--without-
http_fastcgi_module
The FastCGI module enables
NGINX to pass requests to a
FastCGI server.
--without-http_uwsgi_module This module enables NGINX to
pass requests to a uWSGI server.
--without-http_scgi_module The SCGI module enables NGINX
to pass requests to an SCGI
server.
--without-
http_memcached_module
This module enables NGINX to
interact with a memcached server,
placing responses to queries into a
variable.
--without-
http_limit_conn_module
This module enables NGINX to set
connection limits based on certain
keys, usually an IP address.
--without-
http_limit_req_module
With this module, NGINX can limit
the request rate per key.
Option Explanation
--without-
http_empty_gif_module
The empty GIF module produces a
1 x 1-pixel in-memory transparent
GIF.
--without-
http_browser_module
The browser module allows for
configurations based on the User-
Agent HTTP request header.
Variables are set based on the
version found in this header.
--without-
http_upstream_ip_hash_module
This module defines a set of
servers that may be used in
conjunction with the various proxy
modules.
Finding and installing third-party
modules
As with many open source projects, there is an active developer
community surrounding NGINX. Thanks to NGINX's modular nature,
this community is able to develop and publish modules to provide
additional functionality. They cover a wide range of applications, so it
pays to take a look at what is available before embarking on
developing your own module.
The procedure for installing a third-party module is fairly
straightforward:
1. Locate the module you would like to use (either search on
https://github.com or see
http://wiki.nginx.org/3rdPartyModules).
2. Download the module.
3. Unpack the source.
4. Read the README file, if included. See if there are any
dependencies that you will need to install.
5. Configure NGINX to use the module as follows. /configure –
add-module=<path>.
This procedure will give you an nginx binary with the additional
functionality of that module.
Keep in mind that many third-party modules are of an experimental
nature. Test using a module first before rolling it out on production
systems. And remember that the development releases of NGINX
may have API changes that can cause problems with third-party
modules.
Special mention should be made here of the ngx_lua third-party
module. The ngx_lua module serves to enable Lua instead of Perl as
Random documents with unrelated
content Scribd suggests to you:
Passions, 97.
St. Matthew, xvii, xviii, 88.
Ich will bei meinem Jesu wachen, xviii.
O Haupt voll Blut und Wunden, 62 (footnote).
O Lamm Gottes, unschuldig, 81.
O Mensch, bewein' dein' Sünde gross, 81.
Wenn ich einmal soll scheiden, 99.
Oratorios:
Christmas, 98.
Pastorale, 83.
Easter, 98.
Ascension, 98.
Theoretical.
Die Kunst der Fuge, 68.
FOOTNOTES
[1] "Ich dachte, diese Kunst wäre ausgestorben; ich sehe aber,
dass sie in Ihnen noch lebt."
[2] See organo pleno, p. 70.
[3] The French are accustomed to group registers of similar
quality, but varying in pitch, under a single name; as bourdons
(stopped wood pipes), montres (diapasons), anches (reeds),
qualifying them by the pitch; e.g., bourdons of 16' and 8' would
be equivalent to our bourdon and stopped diapason, or gedackt.
—Tr.
[4] Take the most beautiful type of the Plain-chant, for instance:
the Te Deum. Simply vocalize it, sing it without words; rhythm,
beauty, grandeur, all disappear. Translate it, and sing the same
music with either French or German text, it becomes absurd. If
the Roman Church had not prescribed Latin as the language of its
liturgy, we should have no Plain-chant to-day.
[5] In the larger churches in Paris (and in that city the greatest
attention is given to the perpetuation and cultivation of Plain-
chant) are usually found two organs; the larger one located in a
gallery, or tribune, at the west end of the church; the smaller
one, with the choir (invariably of men and boys), being placed
behind the altar, between it and the ambulatory. This smaller
instrument, often augmented by one or more double-basses,
serves only to accompany the choir, while the larger organ, called
the Grand-orgue, is treated only as a solo instrument, either
antiphonally with the choir and small organ, as in the Kyrie, or in
solo selections, often improvisations of great merit, as at the
Offertory.—Tr.
[6] Born about 1545 at Ferrara, organist and choirmaster in his
native city. The "Transilvano" of Girolamo Diruta contains of his
composition a Toccata in the fourth mode, and two Ricercare; one
in the first, the other in the second mode.
[7] His father, Alexandre Milleville, was born in Paris about 1509,
and died September 7, 1589, in Ferrara, where he was
choirmaster. His most distinguished pupil was Ercole Pasquini, the
predecessor of Frescobaldi at St. Peter's in Rome.
[8] He died in 1521, in the service of the Emperor of Austria.
Luther said of him: "This man is truly a master of notes; they
must subject themselves to his will, while other composers are
compelled to obey them." And again, "His works express perfect
contentment, like the song of finches."
[9] Peter Phillipps and Peter Cornet were the best-known
organists in the Netherlands. One may judge of their works by
the excerpts in G.A. Ritter's Geschichte des Orgelspiels (Leipzig,
1884), Nos. 28, 30, 31, and 32 (2d part).
[10] Luzzasco Luzzaschi, whose compositions were for that time of
great value, was charged by Guidiccioni with inability to play trills
and to bring out in relief the details of the counterpoint, which
were blurred under a hard, heavy touch.
[11] We will not enumerate here all of Frescobaldi's works; we
must be content to mention or analyze only those which from the
point of view of our present study are most significant.
[12] The following is the complete title: Fiori musicali di diverse
compositione, Toccate, Kyrie, Canzoni, Cappricci, e Ricercare in
partitura a 4 utili per sonatori. Autore Girolamo Frescobaldi,
organista di San Pietro di Roma. Opera duodecima. Con Privilegio.
In Venetia. Apresso Alessandro Vicenti, 1635. The volume bears
the arms of Cardinal Ant. Barberino, to whom the work is
inscribed (the dedication is dated August 20, 1635). The music is
written in score, on four staves, each part with its proper clef; the
rests are carefully written out.
[13] This precious copy, of 104 pages (like the original), is dated
1714, and preserved in the library of the Kgl. Institut für
Kirchenmusik, at Berlin.
[14] With Frescobaldi we find no final cadence other than a
perfect major; at his time the idea of a major or minor tonality
was still to be conceived, and even for a long time after this
distinction was finally made the custom prevailed of ending a
piece written in a minor key by a major chord. Thus, in a
collection of 371 chorales by J.S. Bach, of which 113 are in the
minor mode, 108 of the latter end with a major chord.
[15] Il secondo libro di Toccate, Canzoni, Versi d'hinni, Magnificat,
Gagliarde, Correnti e altre Partite d'Intavolatura di cembalo e
organo di Girolamo Frescobaldi. Con Privilegio. In Roma, con
licenza de' Superiori. 1627. Da Nicolo Borbone.
[16] Ricercata, of which the fifth part must be sung, without being
played.
[17] The circle, possessing neither beginning nor end, conveys the
impression of the infinite, of perfection. This perfection is
attributed to the number three; according to Franco of Cologne,
the chief number, because of the Trinity, "vera et summa
perfectio." (Musica et cantus mensurabilis, Chap. IV.)
[18] Il primo libro di capricci, canzoni francese e ricercari fatti
sopra diversi soggetti et arie in partitura. Di Girolamo Frescobaldi,
organista in San Pietro di Roma. Novamente ristampati. Con
privilegio. In Venezia, appresso Alessandro Vicenti, 1642. An
earlier edition dates from 1626, and is only the collection in a
single volume of the works published in 1615 and 1624.
[19] The following is a facsimile of this tablature, taken from the
beginning of the sixth Toccata in the second book (pp. 16-20),
per l'organo sopra i pedali e senza:
[ [MusicXML]
[20] According to Michael Praetorius (Syntagma musicum, 1619)
the Toccata was a prelude, a trial of the keyboard, as it were; a
fantasia wholly devoid of form, where the organist improvised,
alternating long-sustained chords with rapid passages. It was
something entirely spontaneous in nature, in which every
imperfection was pardoned, provided the performance was
characterized by sufficient dash. The Toccatas of Frescobaldi, by
virtue of their steadiness and of the balance of their parts, rise far
above such a definition, which is justly applicable to the Toccatas
of Claudio Merulo and of Gabrielli.
[21] This theme was again used by G.B. Fasolo (1645) and Fr. A.
Scherer. Fasolo's version reminds us of the fugue in A major of
J.S. Bach; it runs:
[ [MusicXML]
[22] The Pastorale belongs to the "Toccate d'intavolatura di
Cembalo et organo. Partite di diverse Arie e Correnti, Balletti,
Ciacone, Passacagli di Girolamo Frescobaldi. Libro Primo.
Stampate l'anno 1637 per Nicolo Borbone in Roma." It is a reprint
of works already published in different volumes.
[23] Compare Sœur Monique, by F. Couperin.
[24] Frère Jacques, a popular French tune.
[25] This taste was prevalent at the time; Frescobaldi's rival, S.
Scheidt, organist at Halle, gives us numerous examples of it: in
the first part of the Tabulatura nova (Hamburg, 1624), two
Belgian melodies with variations, and the French song, Es ce
Mars; in the second part, the English tune de Fortuna. The
Tabulatura nova has been reprinted (Denkmäler der Tonkunst).
[26] Previous editions are dated 1614 and 1616. Each of these
directions, addressed "al lettore," is preceded by its number,
according to order; there are no less than nine of them.
[27] Geschichte der Musik, vol. iv, p. 438.
[28] The records of the city of Halle, from the year 1620 on, do
not contain the name Froberger. It is thus useless to entertain the
date 1635, given by some historians.
[29] At first he received twenty-five florins a month. Later his
salary was raised to sixty florins, in addition to gratuities and
money for clothing, beginning at twenty florins per year.
Two organists were usually in service.
[30] He was the father of the astronomer, Christian Huygens.
Himself a composer, he was much interested in music. Curious
facts concerning musicians of his time will be found in the work of
W. Jonckenbloet and Land: Correspondance et œuvres musicales
de Constantin Huygens, Leyden, 1882.
[31] "des pieces que un nommé Mons. Froberger ma donnez, et
qui est un homme tres rare sur les Espinettes."
[32] This manuscript, carefully and finely written and embellished
with pen-designs, is divided into four volumes, splendidly bound;
they are preserved in the library of the Hofburg (the palace of the
Emperor of Austria) in Vienna. A large number of the pieces are
autographs; Froberger distinguishes these by the words Manu
propria.
[33] Ferdinand III. was a musician; still extant are an aria of his
composition with thirty-six variations, published by Ebner
(Gerber), and some litanies in Kircher's Musurgia.
[34] It is worthy of notice that, save for the few months which
preceded his journey to Rome, Froberger appears and departs,
alternately, every four years; with the exception of the leave he
obtained from 1645 to 1653—undoubtedly one of four years
which he had renewed in 1649. The fulfilment of the duties of the
position was assumed by rotation among several organists; like
the custom established at the court of Louis XIV., where the four
titular organists succeeded each other every three months, or
every "quarter."
[35] "Allemande de M. Froberger, fait à Paris." It is No. 12 of the
manuscript in the Bibliothèque Nationale, Vol. 7, 1862. This
volume is ornamented with the arms of Bassyn d'Angervilliers and
of N. Mothefelon. The title upon the binding reads: Préludes de
M. Couperin. Besides these preludes and the Froberger pieces are
contained works of Frescobaldi, Labarre, and Richard de Saint-
Jacques.
[36] From this vacation seems also to date a journey to Dresden,
where he was accorded a magnificent reception by the Elector of
Saxony, to whom the Emperor had sent him.
[37] In two autograph letters, of June 25 and October 23, 1667,
addressed to Christian Huygens, the Princesse de Montbéliard
gives details of Froberger's death, expressing her grief at the
decease of the "Chevalier," a true "Patron of noble music." These
letters, which were discovered in 1874 by Dr. E. Schebeck, have
been published by him, somewhat revised, and by Jonckenbloet
and Land in their original form.
[38] These suites are found in the Vienna manuscript and in one
of the Spitta collection. (See Franz Beier: Ueber J.J. Froberger's
Leben und Bedeutung für die Klaviersuite.)
[39] Unam exhibemus quam D. Io. Jac. Frobergerus organoedus
Caesarius celeberrimus olim organoedi Hieron. Frescobaldi
discipulus supra UT RE MI FA SOL LA exhibuit. (Musurgia universalis,
Vol. i, p. 466.)
[40] He excelled in movements in triplets.
[41] Anleitung zur musikalischen Gelahrtheit.
[42] J.S. Bach is already foreshadowed in Froberger's
compositions. Thus, in this double of an Allemande:
[ [MusicXML]
[43] Kerl was sent to Rome by Emperor Ferdinand III. about
1649; he received some lessons from Carissimi.
[44] See Ed. Hanslick: Aus meinem Leben. (Deutsche Rundschau,
July, 1894, p. 54.)
[45] "Our Father, who art in heaven." This chorale was one of
eight published for Pachelbel by Johann Christoph Weigel at
Nuremberg about 1693.
[46] Georg Muffat, born about 1635, was a pupil of Lully, and
studied also in Rome and Vienna. For some time he was organist
in Strassburg, and about 1667 entered the service of the Bishop
of Salzburg. About 1687 he became organist and master of the
pages at the court in Passau. He died there February 23, 1714.
He published in 1690, at Augsburg, the "Apparatus musico-
organisticus" (re-edited by S. de Lange, Leipzig, 1888), which
contains twelve Toccatas, one in each of the Gregorian modes,
and some pieces of lesser importance.
These Toccatas are a development of the older form of the same
name, where brilliant passages, harmonic progressions, or fugal
imitations, succeeded each other. From each of these elements
Muffat made a whole, developed separately; a similar method
suggested in certain Canzoni of Frescobaldi was extended in
some of the Capricci of Froberger. Nothing but the too sparing
use of the pedal prevents these works from being ranked among
the most important.
[47] J. Commer. Musica sacra, vol. i, No. 132.
[48] Following the publication of the "neu eröffnetes Orchester" of
Mattheson, Buttstedt had written an essay entitled:
Ut mi sol
re fa la
Tota musica (Erfurt, 1717),
in which he defended the old solmisation, or system of changes,
the si, a changeable note, being disregarded. Mattheson
answered it the same year by the "neu beschütztes Orchester"
(defense of the new orchestra), with the epigraph:
Ut mi sol
re fa la
Todte (nicht tota) Musica,
a bad pun on the words tota, the whole, and todte, dead.
[49] He was installed in this position April 11, 1668, and upon the
third of the following August married Anna Margaretha, daughter
of his deceased predecessor.
[50] Dietrich Buxtehude's Orgelcompositionen, herausgegeben
von P. Spitta. (The first volume contains the preludes, fugues,
etc.; the second the chorales.) Leipzig, 1876.
[51] It is curious to notice, even in these surroundings, an
example of what was in the middle ages called the "proportio
hemiolia," the immediate passage from triple to duple time, which
we find as late as in the works of Bach and Händel. (See The
Messiah, third chorus, thirty-fifth measure.)
In endeavoring to accentuate the rhythm, Buxtehude
unconsciously breaks it. In reality, the pedal brings an accent
upon the third beat; and we obtain, by taking as the first beats of
measures the chords marked with a sign:
[ [MusicXML]
[52] See Merkel (Johann): "Betrachtungen über die deutsche
Tonkunst im 18. Jahrhundert." Inaugural-Dissertation zur
Erlangung der Doktorwürde (School of Philosophy of Leipzig
University, 1886).
[53] These concerts were inaugurated in 1673; undoubtedly for
one of these, to which the name Abendmusik, evening music,
was applied, the Chaconnes and the Passacaglia were written.
[54] Centone (It.): a composition made up of excerpts from other
works.
[55] Peters Edition, edited by Griepenkerl and Roitzsch, vol. iv, No.
5.
[56] Peters Edition, vol. iv, No. 9.
[57] P. viii, 11.
[58] P. iii, 9.
[59] Bruhns was born at Schwabstädt (Schleswig) in 1666, and
died at Husum in 1697; he was organist there, and had formerly
occupied for some time a similar position in Copenhagen.
[60] It will be interesting to compare this piece with the prelude in
F sharp minor by Buxtehude, particularly with this excerpt from it
(ed. Spitta, xii, p. 68):
[ [MusicXML]
[61] For instance, in the Chaconne (iii, p. 15, from the 8th
measure), which we have already analyzed:
[ [MusicXML]
[62] P. ix, 6. In this edition, this work bears the title of concerto,
undoubtedly because of its form in several movements; at least,
it was so designated in Griepenkerl's collection. A manuscript
which has come down from the organist Westphal, in Hamburg,
gives it this title: "Fantasia, clamat in G♮, di J.S. Bach."
[63] P. iv, 11.
[64] P. iii, 10. Bach-Gesellschaft-Ausgabe (W. Rust), year XV, p.
100.
[65] For example, this theme:
[ [MusicXML]
[66] Hanslick: Vom Musikalisch-Schönen.
[67] Schopenhauer: Lichtstrahlen aus seinen Werken (J.
Frauenstädt, Leipzig, 1874, p. 128).
[68] P. iv, 4; B.-G. xv.
[69] P. iii, 7; B.-G. xv, p. 276. This work also bears the title of
Toccata. It presents the peculiarity of being divided into four
movements, whence, possibly, this designation, concertato, which
accompanies it in one of the MSS. It is essentially an imitation of
Buxtehude's compositions in several movements.
[70] P. iv, 3; B.-G. xv, p. 88.
[71] "It is not necessary," says Mattheson, "to indicate the degree
of rapidity of an alla breve; these words suffice to animate the
most sluggish brain, to make supple the heaviest of hands. For
example, it is like 'clucking' to a horse."—Grosse Generalbass-
Schule, Hamburg, 1732.
[72] P. iii, 5; B.-G. xv, p. 112.
[73] P. viii, 5. These works are part of the collection of G. Pölchau,
a well-known musician of Hamburg in the last century.
[74] Born in 1663, Duke Wilhelm Ernst reigned from 1683. Early
becoming a widower, and left without children, he adopted a
somewhat retired mode of life, as we may judge. At the palace,
"Wilhelmsburg," everyone had to retire at nine o'clock in summer
and eight in winter. He evinced a marked taste for theological
studies and discussions; in 1710 he brought together in a synod
one hundred pastors, and he built or repaired a number of
churches and seminaries. He was also interested in numismatics.
This austerity was in some degree tempered by concerts, whose
programs were performed (J.O. Köhler tells us, Historische
Münzbelustigung, Nuremberg, 1730) by sixteen picked musicians,
dressed in Hungarian costume (Bach en tzigane!). Further, the
duke built a theatre in 1696; the patronage accorded to the
troupe of Gabriel Möller, "Hofcomödiant" (court comedian), was
not of long duration; it had already ceased in 1709.
[75] Prince Johann Ernst was of a weak constitution; he died in
1715, at the age of nineteen years, and the only way he could
make his insomnia bearable was to keep with him in his room
during entire nights Walther, his music teacher, who would play
for him his favorite pieces.
[76] Johann Gottfried Walther was born in 1684, and from 1707
held the position of town organist in Weimar. Not only was he a
good musician, but he was also a theoretician of merit; while he
learned from his friend Bach the principles of the old school of
Sweelinck, the traditions of which had descended through the
teachings of Reinken and Buxtehude (see J.G. Walther als
Theoretiker.—Study by Gehrmann in the Vierteljahrschrift für
Musikwissenschaft, 1891), Bach, on the other hand, was able to
obtain other advantages from this interchange; Walther was
remarkably well-schooled in harmony, and from his thorough
knowledge, of long standing, of Italian chamber music, he
undoubtedly was not indirectly connected with these new studies
of Bach's.
[77] I am not speaking of virtuosos. We know with what
astonishment Corelli, the great Italian violinist, listened to the
playing of Nikolaus Strungk of Celle: "I call myself arcangelo,"
said he to the latter, "but you deserve the title of arcidiavolo."
And we must not forget the old musician, J. Franz Biber, who was
born in 1638 and died at Salzburg in 1698, and who exerted a
perceptible influence upon the creation of the violin sonata.
But what the Germans sought was not, let me repeat, within the
domain of that expressive instrument; they could not be content
with simple melody, they must have complete harmony. And so
we learn that Bruhns (the remarkable organ-pupil of Buxtehude,
and an exceptionally talented violinist) would seat himself before
the pedal of an organ, violin in hand, and would play in four parts
—the bass with his feet, the other parts upon his violin.
[78] P. viii, 1-4. Vivaldi was born toward the end of the
seventeenth century; in 1713 he was appointed maestro di
cappella at l'Ospitale della Pietà, at Venice; later he was for some
time in the service of the Landgrave of Hesse-Darmstadt. He died
in 1743.
[79] The title of this last transcription gives us a clue to its date; it
reads as follows: "Concerto dell'illustrissimo Principe Giovanni
Ernesto Duca di Sassonia appropriato all'Organo a 2 clav. e
pedale da Giovanni Sebastiano Bach." So it must have been
written before 1715, the date of the Duke's death. Bach was not
the only one to make these transcriptions; Mattheson tells us
(Das beschützte Orchester): "Compositions of this order (concerti
grossi, sinfonie in specie, overtures) may also be played upon a
polyphonic instrument, for instance upon the organ or
harpsichord; a few years ago the celebrated S. de Graue, the
blind organist of the new Dunes Church in Amsterdam, played
from memory and with remarkable clearness in my presence,
upon the excellent organ in his church, the latest Italian sonatas
and concertos in three and four parts."
[80] P. iii, 8. B.-G. xv, p. 253.
[81] This work, perhaps, dates from the journey which Bach made
to Cassel in 1714 to examine a recently restored organ. At least
the pedal passage in the prelude reminds us of that pedal solo
executed during this tour before the Hereditary Prince of Hesse
with such virtuosity that the latter drew from his finger a valuable
ring and presented it to Bach. "One might have believed," says
Adlung (Anleitung an der Musikgelahrtheit), "that his feet were
winged, with such agility did they move over the keys which
caused the powerful basses to resound. If the dexterity of his feet
drew from the Prince so rich a present, what should he have
given him in recognition of the genius of his hands?"
[82] It will be interesting to compare one of these themes with
the following from the counterpoint of a fugue in A major by
Albinoni:
[ [MusicXML]
especially if we remember this first transformation which it
underwent at the hands of Bach in a fugue for harpsichord:
[ [MusicXML]
[83] Here are noticeable the pauses Bach contrives to introduce
for one of the hands, that it might effect the changes in
registration necessary to play the fugue coll'organo pleno.
[84] P. iv, 8.
[85] Corelli was born in 1653, and died in 1713. The theme
mentioned is found in Joachim's edition of Corelli's works
(Denkmäler der Tonkunst, vol. iii. Bergedorf, near Hamburg,
1871). It is the theme of a fugue, the second part of a "church
sonata," opus 3; the fugue is marked vivace, and is but thirty-
nine measures in length.
[86] The manuscript of this fugue, coming down from Andreas
Bach, bears the following qualification: "Thema Legrenzianum
elaboratum cum subjecto pedaliter."
[87] P. iv, 10.
[88] Sweelinck, who was born at Deventer about 1560, studied
with Zarlino at Venice, and upon his return home in 1580
occupied (until his death in 1620) the position of organist to the
old Protestant Church in Amsterdam (see Max Seiffert: J. Peter
Sweelinck und seine directen deutschen Schüler).
[89] It is the third number in the volume entitled, Drei Phantasien,
drei Toccaten und vier Variationen, nach einem Manuscript des
grauen Klosters zu Berlin aus der Orgeltabulatur übersetzt und
herausgegeben von Rob. Eitner (Berlin, 1870).
[90] Livre d'orgue (1701).
[91] Let it be remembered that Bach, imitating these same
Sonatas in composing the Lamento of the "Capriccio upon the
departure of his most beloved brother" (1704), employs this motif
as a basso quasi ostinato, and that in the Easter Cantata written
in the same year the viola sorrowfully gives expression to the
same theme.
[92] His compatriot, John Bull, who died in Antwerp in 1628, had
already written a series of variations upon this subject. (See "A
General History of Music," by Charles Burney. London, 1789, p.
115.)
[93] This is the term which Bach employs in the preface to his
Inventionen und Sinfonien compiled in 1723, that his pupils
might, through their study, acquire un jeu cantable.
[94] P. viii, 6.
[95] Commer. Musica Sacra (Vol. I, No. 123, p. 137).
[96] P. i, 2. B.-G. xv, p. 289. [M. Pirro writes me: "You may state
that the theme of the Passacaglia was the composition of the
French organist André Raison." To which M. Widor adds: "André
Raison, organist of St.-Étienne du Mont in Paris at the time of
Louis XIV, left a volume of organ works, now very rare, which I
have presented to the library of the Conservatoire. Raison's
collection is interesting, in that it gives indications of the
registration of his time; the chorale is usually found in the pedal,
treated as the tenor, the real bass being played by the left hand.
The melody of the chorale is performed upon a reed stop in the
pedal, while upon the manuals only mixtures are drawn." Tr.]
[97] P. ii, 5. B.-G. xv, p. 104.
[98] P. iii, 6. B.-G. xv, p. 129, and P. iv, 12 (a 5 voci).
Accompanying the latter Fantasia is a fugue of which,
unfortunately, only the first twenty-seven measures are extant.
[99] P. iii, 2. B.-G. xv, p. 155.
[100] P. ii, 6. B.-G. xv, p. 218.
[101] P. iii, 3. B.-G. xv, p. 136.
[At the time of Bach it was a frequent usage to omit an accidental
from the signature; in the above case the omission of the only
flat undoubtedly suggested the appellation frequently given "in
modo dorico," although otherwise the composition bears hardly a
trace of the Dorian mode. Tr.]
[102] Geschichte der evangelisch-lutherischen St. Agnuskirche in
Köthen. Herausgegeben von C.F. Hartmann, Köthen, in der
Commission der Huschen Buchhandlung (1802). The organ is
described on pages 19 and 20.
[103] [The pedal, even of modern organs, extends upwards only
to f'. Since the middle of the last decade, the house of Cavaillé-
Coll in Paris, has applied to the larger instruments constructed by
it the compass of C to g'. This range was recommended by the
translator and adopted for an organ now in process of
construction in Boston; it is also a feature of the large organ for
Yale University, recently contracted for.]
[104] P. iii, 2. B.-G. xv, p. 155.
[105] The beginning, at least; while the conclusion is characterized
by repetitions, this part of the work is not its least imposing
portion.
[106] P. ii, 3. B.-G. xv, p. 120.
[107] This cantata, written for soloists, was first performed
December 29, 1715. B.-G. xxx, 2.
[108] For example, in the fugue in G minor (P. iv, 7).
[109] P. i, 1. B.-G. xv.
[110] The first part of the sonata in D minor undoubtedly dates
from the year 1722; the adagio and vivace of the sonata in E
minor are transcribed from the cantata Die Himmel erzählen
(1723), B.-G. xviii. The last movement of this sonata was
originally intended to serve as an interlude between the prelude
and the fugue in G major (P. ii, 2. B.-G. xv, p. 169. The theme of
the fugue is, in major, that of the first chorus in the cantata Ich
hatte viel Bekümmerniss, performed in 1714), composed,
according to the water-mark of the autograph, in 1724 or 1725.
[111] See S. Bagge: Die geschichtliche Entwickelung der Sonate.
[112] P. ii, 4. B.-G. xv, p. 177.
[113] Grosse General-Bass-Schule, oder Exemplarische
Organistenprobe (Hamburg, 1731), p. 34. "The subject of this
fugue was produced by a facile pen, and, in 1725, presented to a
candidate for the position of organist."
[114] Charles Gounod: Le Don Juan de Mozart, p. 5.
[115] Clavierübung.—Dritter Theil der Clavierübung bestehend in
verschiedenen Vorspielen über den Catechismus und andere
Gesänge vor die Orgel: denen Liebhabern und besonders denen
Kennern von dergleichen Arbeit, zur Gemüths-Ergötzung
verfertiget von J.S. Bach, königl. Pohlnischen, und Churfürstlich
Sächsischen Hof-Compositeur, Capellmeister, und Directore Chori
Musici in Leipzig. In Verlegung des Authoris.
[116] P. iii, 1. B.-G. iii, pp. 173 and 254.
[117] It is worthy of note that the fugue, a last reminiscence of
Buxtehude, is in three movements of different rhythms.
[118] P. ii, 9. B.-G. xv, p. 236.
[119] P. ii, 10. B.-G. xv, p. 199.
[120] Schopenhauer. Lichtstrahlen aus seinen Werken. J.
Frauenstädt, Leipzig, 1874.
[121] P. ii, 1.
[122] P. ii, 6. B.-G. xv, p. 218. Here are noticeable reminiscences
from the Recordare in the Dies Irae of Legrenzi, for eight-part
chorus, three violes and organ.
[123] P. ii, 8. B.-G. xv.
[124] P. ii, 7. B.-G. xv, p. 228.
[125] These variations are contained in the fifth volume of the
Peters edition (Part ii, 1 and 2).
[126] P. vi, 15.
[127] This also must have been written for the clavecin; the right
hand passing over the left in order to strike the bass note e, held
meanwhile by the pedal, clearly indicates the intention of thereby
prolonging the sound.
[128] Published by Ritter: Geschichte des Orgelspiels, part ii, p.
181.
[129] Musica Sacra, vol. i, p. 5.
[130] Orgelbüchlein Worinne einem anfahenden Organisten
Anleitung gegeben wird, auff allerhand Arth einen Choral
durchzuführen, anbey auch sich im Pedal Studio zu habilitiren,
indem in solchen darinne befindlichen Choralen das Pedal gantz
obligat tractiret wird. Dem Höchsten Gott allein zu ehren, Dem
Nechsten, draus sich zu belehren. Autore Joanne Sebast. Bach
p.t. Capellae Magistro S.P.R. Anhaltini-Cotheniensis.
The chorales of the Orgelbüchlein are published in the fifth
volume of the Peters, and in the twenty-fifth year of the Bach-
Gesellschaft edition. W. Rust, in the latter volume, has preserved
the order adopted by Bach in the succession of these chorales,
which is according to the church year.
[131] Durch Adam's Fall ist ganz verderbt. Buxtehude employed
fifths to symbolize this descent.
[132] Organists often played the sortie (postlude) in the form of a
chaconne, with full organ (see Mattheson: "Der vollkommene
Capellmeister," and Becker, "Rathgeber für Organisten"). The
prelude to the chorale "Heut' triumphiret Gottes Sohn" is
conceived in the same manner.
[133] In the collection Lustgarten neuer teutscher Gesänge,
Balletti, Galliarden und Intraden mit 4, 5, 6, 7, und 8 Stimmen.
1601, Nürnberg, bei Kaufmann.
[134] O Haupt voll Blut und Wunden.—Cf. chorale in St. Matthew
Passion.
[135] Compare that chorale with this fragment of a chorale by
Böhm, Vater unser im Himmelreich:
[ [MusicXML]
[136] P. vi, and vii. B.-G. xxv, vol. ii, 3rd part.
[137] For example, upon the melodies "Allein Gott in der Höh' sei
Ehr'" (several versions), "Nun komm, der Heiden Heiland" and
"Herr Jesus Christ, dich zu uns wend."
[138] Nun komm, der Heiden Heiland.
[139] Various arrangements by Bach of this chorale are in
existence; we would cite in particular the one which he made
with double pedal, upon the same harmonic bass as the one
already referred to. It was probably composed for the journey to
Hamburg (in 1720), when Bach drew from old Reinken the
avowal of an admiration which the latter was not wont to lavish,
for his improvisations upon this theme. Reinken had also
composed a prelude upon it. It is interesting to compare the
profusion of ornaments by which he renders the melody almost
unrecognizable, with the elegant design in which Bach clothes it.
Reinken thus distorts the beginning:
[ [MusicXML]
With a Toccata and another Choralvorspiel, this arrangement is all
that remains to us of Reinken's works.
[140] Schumann said of this prelude, by which he himself was
influenced in certain compositions (Cologne): "Thou didst play,
Felix Meritis (Mendelssohn), a prelude upon one of those figured
chorales: 'Schmücke dich, o liebe Seele,' was the text; the melody
seemed interlaced with garlands of gold, and the work breathed
forth such happiness that you inspired in me this avowal: 'Were
life deprived of all trust, of all faith, this simple chorale would
restore all to me.' I fell into a revery; then, almost unconsciously,
I found myself in the cemetery, and I felt poignant grief at not
being able to cover with flowers the grave of the great Bach."—
Letters, vol. i. Mendelssohn had played this chorale at a concert
given, in St. Thomas' Church, to further the erection of a
monument to the memory of J.S. Bach.
The melody of this chorale is found in choral-books since 1649.
[141] Einige kanonische Veränderungen über das Weihnachtslied:
Vom Himmel hoch da komm' ich her.
[142] These variations were published separately. Bach had them
engraved about 1746 by Balthasar Schmidt in Nuremberg, in
order to present them as the work for admission which the
"Society for Musical Sciences" founded by Mizler in 1738 imposed
upon each of its candidates. Bach was elected in 1747. He must
have composed them, however, some years previously. The MS.
and the engraved edition present numerous differences of
editing.
[143] P. vi, and vii. B.-G. iii.
[144] Cart. Un maître deux fois centenaire.
[145] P. vii, 58. B.-G. xxv.
[146] Forkel.
[147] At the commencement of his compositions he wrote the
initials J.J. (Jesu Juva) or S.D.G. (Soli Deo Gloria).
[148] Ueber J.S. Bach's Leben, Kunst und Kunstwerke. Leipzig,
1802.
[149] Dieupart, born in France during the last third of the
seventeenth century, was a remarkable violinist and clavecinist.
He went to England early in the eighteenth century, and,
associated with Clayton, introduced Italian opera at Drury Lane.
After disasters similar to those which later befell Händel, he
renounced the theatre and busied himself no longer with
instrumental music. He died in 1740.
Of his compositions are extant: Six suites for the clavecin, divided
into Overtures, Allemandes, Courantes, Sarabandes, Gavottes,
Minuets, Rondos, and Gigues, composed and arranged for concert
performance by a Violin and a Flute, with a Bass Viol and an
Archilute. (See Grove's "Dictionary of Music and Musicians.") The
prelude of Bach's first English Suite was inspired by a passage in
the A major suite of Dieupart.
[150] Der Vollkommene Kapellmeister, Hamburg, 1739, §69, p.
467.
[151] Mattheson says, à propos of this stop: "The French have
given to the Nachsatz (thus named on account of its high pitch, in
contrast to the Untersatz of thirty-two feet) of the Netherlanders,
the designation Nasard or Nasarde, 'a vulgar expression, of which
use is made in comedy or burlesque,' says Boyer's dictionary."
[152] This register, composed of two ranks of pipes of tin or of
composition, is a compound stop. The longer pipe gives the fifth
of the octave, the shorter the third of the fifteenth; there is thus
the interval of a major sixth between the two ranks.
[153] In Das neu eröffnete Orchester (1717). Mattheson was born
in Hamburg in 1681; aside from his critical works on music he
was an organist of ability; he knew Buxtehude, becoming
acquainted with him in 1703. He even expected to succeed him,
but renounced his aspirations in this direction upon learning that
in accepting the position of the father he would be obliged to
marry the daughter, Anna Margaretha, born in 1669, and
therefore much too old for him; this was one of the conditions of
the place, which also deterred Händel from presenting himself as
a candidate.
[154] Certain organists abused this powerful combination; Adlung
says, "There are many who, in playing the chorale or music in
general, know only the noise of the plein-jeu. One may be
content to continually wear the same clothes, but an organist
who produces the same sounds every day will render himself
insupportable by his monotony. In the chorale, in the last verse,
one may play a little louder, to remind the minister to prepare for
the resumption of his duties; especially in towns where it is no
longer customary (as is still the honored usage in some villages)
to rap with a bâton for this purpose, as though one by force
would arouse him from slumber." Anleitung zur musikalischen
Gelahrtheit, 1758.
[155] Premier livre d'orgue, 1665.
[156] Livre d'orgue, 1688.
[157] "Reed-stops are often Fool-stops; but if they be clear and
bright, they are refreshing to heart and soul."
[158] Sechs Choräle von verschiedener Art auf einer Orgel mit 2
Clavieren und Pedal vorzuspielen, verfertiget von Johann
Sebastian Bach, königl. Pohln. und Churf. Sächs. Hoff-
Compositeur, Capellm. und Direct. Chor. Mus. Lips. In Verlegung
Joh. Georg Schüblers zu Zella am Thüringer Wald.
These chorales are taken from the cantatas composed at Leipzig.
They are, however, only transcriptions; it is interesting in
registrating them to know their orchestration. In the chorale Ach
bleib' bei uns! (B.-G. xxv, P. vi, 2) the melody is sung by the
soprano, accompanied by a violoncello piccolo, the continuo
sustaining the harmony. In Meine Seele erhebt den Herrn
(Magnificat, P. vii, 42), the continuo is played by the pedal, the
parts entrusted to the left hand corresponding to the duet
between tenor and alto, while the chorale (dextra forte) is
executed in the score by the first and second oboes and the
trumpet.
[159] Musica mechanica organoedi (Langensalza, 1762).
[160] Der vollkommene Kapellmeister, part ii, chap. xxv.
[161] It appears that this carillon was not constructed; it is
possible, however, that Bach had it in mind when writing the
chorale. Moreover, it was to be found in other organs.
[162] Livre d'orgue contenant une messe et quatre hymnes pour
les principales festes de l'année. Par Nicolas de Grigny, organiste
de l'église-cathédrale de Reims. À Paris, chez Christophe Ballard,
seul imprimeur du Roy pour la Musique. Rue Saint-Jean de
Beauvais, au Mont-Parnasse. 1701. Avec Privilège de Sa Majesté.
[163] [The cornet here referred to is obviously a mixture, not the
reed of the same name already mentioned.—Tr.]
[164] This organ was the only one with three manuals which
Bach could have had in mind while he was in Weimar with
Walther; it is natural that in his compositions he should be
preoccupied with an organ whose restoration he had planned,
and undoubtedly supervised—Weimar being not far from
Mühlhausen—and which in all probability he looked forward to
inaugurating. This remark, moreover, may apply to the
composition of the chorale In dir ist Freude, although here
Bach had been disappointed.
[165] That is, for playing the basso continuo of the orchestra.
[166] [En montre signifies literally "on show"; that is, in front.
The French designation for a diapason, Montre, is derived
from the custom of placing the pipes of that register in an
exposed position.—Tr.]
[167] [The filling-out of the figured bass by the organ, made
necessary in music with orchestra by the paucity of the
instrumental numbers, was referred to as the "music."—Tr.]
[168] [The word swell I have used in the foregoing merely to
designate the third manual; and it by no means implies that
the pipes belonging to that keyboard were enclosed in a
swell-box. Although this invention was applied to an English
organ for the first time in 1712 (St. Magnus Church, London
Bridge), its adoption in Germany has become general only
within comparatively recent years, and then only in newly-
built instruments.—Tr.]
[169] J. Th. Mosewius: J.S. Bach in seinen Kirchencantaten
und Choralgesängen (Berlin, Trautwein, 1845), p. 25.
[170] This is what was done by Robert Franz. See Offener
Brief an Eduard Hanslick (Leipzig, 1873).
[171] Deutliche Anweisung zum Generalbass (Halberstadt,
1772), p. 137.
[172] Anleitung zur practischen Musik (Leipzig, 1782).
[173] B.-G. iv. [The first and last numbers, respectively, of Part
I. In the first the chorale is sung by a special chorus of
sopranos, usually boys, while the two mixed choruses and the
two orchestras are treated contrapuntally. In the other
instance the two choruses are united in one, as are also the
two orchestras, and the chorale is sung by all the sopranos,
the counterpoint being assigned to the remaining three vocal
parts, supported by the orchestra.—Tr.]
[174] B.-G. v.
[175] B.-G. xviii, 10.
[176] The organo obbligato was sometimes written with more
delicate intentions; for example, in the alto aria with
accompaniment of an oboe da caccia, from the cantata Wer
weiss, wie nahe mir mein Ende? (B.-G. v.).
[177] We should add here, that the organs were not of the
same pitch as the other instruments, for they were tuned to
chorus-pitch, a whole tone lower than the normal diapason.
The organ at Weimar, on the contrary, was a minor third
higher.
[178] Oberwerk means literally the higher manual; in two-
manual organs the stronger was, at that time, found above
the other. The name Rückpositif came from the custom of
placing the pipes behind the back (Rücken) of the organist.
Finally, the swell bore the name Brustwerk, the pipes being
placed facing the breast (Brust) of the player. In a three-
manual organ the great keyboard was situated between the
swell, which was above, and the choir, which was below it.
[179] This instrument was constructed in 1701, by J.F.
Wender, an organ-builder of Mühlhausen. [The specification
as compiled from the existing stop-handles by Mr. C.F.A.
Williams ("Bach": J.M. Dent & Co.: London), differs slightly
from the above, which is given by Spitta.—Tr.]
[180] A sort of Glockenspiel, which produced l'accord parfait
[undoubtedly the major triad].
[181] This was a reed stop.
[182] Historische Nachrichten von der berühmten
Residenzstadt Weimar. Weimar, 1737, p. 175, 176.
[183] [The Principal here referred to is undoubtedly the eight-
foot Diapason.—Tr.]
[184] Undoubtedly larigot.
[185] Vogel, Leipziger Chronicke. Vol. iii, chap. vi, p. 110.
[186] In combination with the Quintatön of eight feet, says
Adlung, the Geigenregal sounds almost like a stringed
instrument.
[187] Cromorne. Also called lituus (clarion) by Praetorius
(Syntagma musicum), Tome ii, chap. xv, p. 40. Adlung
suggests this simple derivation: cor and morne (sad,
reserved).
[188] Ueber J.S. Bach's Leben, Kunst und Kunstwerke.
[189] Die wahren Grundsätze zum Gebrauch der Harmonie
(Berlin, 1773) p. 53. See also Mizler (Necrolog, p. 171) and
Forkel (p. 22).
[190] Clavierbüchlein, vor Wilhelm Friedemann Bach
angefangen in Cöthen den 22. Januar, anno 1720.
[191] See A. Méreaux: Les Clavecinistes de 1637 à 1790.
Tableau synoptique et comparatif de tous les agréments avec
leur signes et leur effet. Heugel, Paris.
[192] L. Diémer: Les Clavecinistes français du XVIIIe siècle
(Durand and Schönewerk).
[193] This work contains, with numerous examples, a study of
ornamentation, from G. Diruta to J.S. Bach in the first part,
from Ph. E. Bach to our own period in the second. (London:
Novello, Ewer & Co.)
[194] P. vi, 9. B.-G.
[195] B.-G. xiii, p. xvi. We again encounter this grouping in the
flute part of the et in unum Deum of the B minor Mass.
[196] The autograph was contained in the collection of Ph.
Spitta.
[197] Toccata II (libro i).
[198] Toccata 6a
(adagio), and Toccata 3a
of the Apparatus
musico-organisticus.
[199] Veit Bach was born in Gotha during the second half of
the sixteenth century; he is considered the progenitor of the
Bach family. He was the first representative of the race of
musicians who furnished "cantors" and organists to the
greater number of the central German cities. At Erfurt, for
instance, the direction of the "council music" was in their
hands from 1625 until 1735, and even after their
disappearance the town musicians were still referred to as
"the Bachs."
[200] This instrument was constructed in 1701 by Wender, an
organ-builder in Mühlhausen. Wender had a certain local
reputation, but was unskilful and not very conscientious.
[201] Besides a salary of 85 thalers, he had various perquisites
"in kind."
[202] One of his cantatas, Gott ist mein König, was engraved
in separate parts by Brückner of Mühlhausen.
[203] See Philipp Spitta: Johann Sebastian Bach, vol. i, p. 354.
[204] [Subsequent to the writing of the above, and during the
progress of general disinterment incidental to the devotion to
other uses of the land occupied by the cemetery, Bach's
remains were found and identified by most scientific methods.
In August, 1900, took place the official ceremony of
reinterment in a stone sarcophagus, contained in a crypt
constructed for the purpose at the foot of the chancel steps
of the new Johanniskirche (St. John's Church). Upon this
occasion the University Gesangverein zu St. Pauli sang.
September 2d of the same year, at the close of the weekly
"Abend-Motette" (the program on this occasion having been
devoted entirely to works of Bach), the solo-quartet of the
church sang in the crypt the chorale from the St. Matthew
Passion Wenn ich einmal soll scheiden, in the presence of a
few other reverent "friends of Bach's music." The following
morning the lid of the sarcophagus was permanently closed
and sealed.
By its side, enclosed in a similar receptacle, lie the ashes of
Gellert, the poet.—Tr.]
[205] A small-sized violin, tuned a fourth higher.
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.
More than just a book-buying platform, we strive to be a bridge
connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.
Join us on a journey of knowledge exploration, passion nurturing, and
personal growth every day!
ebookbell.com

More Related Content

Similar to Mastering Nginx Converted Dimitri Aivaliotis (20)

PDF
(Ebook) Go: Building Web Applications by Nathan Kozyra, Mat Ryer
shalomhaihai
 
PDF
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...
enokikulla1u
 
PDF
Download full Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer...
salsajidas
 
PDF
Applied Elk Stack Data Insights And Business Metrics With Collective Capabili...
klegerrejuso
 
PDF
ASP.NET Core Razor Pages in Action 1st Edition Mike Brind
leevanasruf
 
PDF
Learning Aspnet Core Mvc Programming Mugilan T S Ragupathi
nybiadegeye
 
PDF
Complete Download DevOps for networking boost your organization's growth by i...
raiyaalaiaya
 
PDF
Immediate download DevOps for networking boost your organization's growth by ...
kapuilakna
 
PDF
ASP.NET Core Razor Pages in Action 1st Edition Mike Brind All Chapters Instan...
vanidatrota15
 
PDF
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...
chaberbuechi
 
PDF
Microsoft Hyper V Cluster Design 1st Edition Eric Siron
qolbiynezha
 
PDF
Developer s Guide to Microsoft Enterprise Library C Edition Alex Homer
hrpdispfq6423
 
PDF
MCTS 70 640 Cert Guide Windows Server 2008 Active Directory Configuring 1st E...
aveerthrunzk
 
PDF
ASP NET Core Security 1st Edition Christian Wenz
cepernevija
 
PDF
Complete Download Microsoft Hyper V Cluster Design 1st Edition Eric Siron PDF...
vottokasapay
 
PPTX
Nginx-deploy on linux server with 80 and 442
RekeshPatel
 
PDF
PDF DevOps for networking boost your organization's growth by incorporating n...
keshnadjunev
 
PDF
ASP.NET Core Razor Pages in Action 1st Edition Mike Brind
choaibgais
 
PDF
Mysql 51 Plugin Development Sergei Golubchik Andrew Hutchings
kilonboache
 
PDF
DevOps for networking boost your organization's growth by incorporating netwo...
goemgqya030
 
(Ebook) Go: Building Web Applications by Nathan Kozyra, Mat Ryer
shalomhaihai
 
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...
enokikulla1u
 
Download full Go Building Web Applications 1st Edition Nathan Kozyra Mat Ryer...
salsajidas
 
Applied Elk Stack Data Insights And Business Metrics With Collective Capabili...
klegerrejuso
 
ASP.NET Core Razor Pages in Action 1st Edition Mike Brind
leevanasruf
 
Learning Aspnet Core Mvc Programming Mugilan T S Ragupathi
nybiadegeye
 
Complete Download DevOps for networking boost your organization's growth by i...
raiyaalaiaya
 
Immediate download DevOps for networking boost your organization's growth by ...
kapuilakna
 
ASP.NET Core Razor Pages in Action 1st Edition Mike Brind All Chapters Instan...
vanidatrota15
 
Azure Infrastructure as Code: With ARM templates and Bicep 1st Edition Henry ...
chaberbuechi
 
Microsoft Hyper V Cluster Design 1st Edition Eric Siron
qolbiynezha
 
Developer s Guide to Microsoft Enterprise Library C Edition Alex Homer
hrpdispfq6423
 
MCTS 70 640 Cert Guide Windows Server 2008 Active Directory Configuring 1st E...
aveerthrunzk
 
ASP NET Core Security 1st Edition Christian Wenz
cepernevija
 
Complete Download Microsoft Hyper V Cluster Design 1st Edition Eric Siron PDF...
vottokasapay
 
Nginx-deploy on linux server with 80 and 442
RekeshPatel
 
PDF DevOps for networking boost your organization's growth by incorporating n...
keshnadjunev
 
ASP.NET Core Razor Pages in Action 1st Edition Mike Brind
choaibgais
 
Mysql 51 Plugin Development Sergei Golubchik Andrew Hutchings
kilonboache
 
DevOps for networking boost your organization's growth by incorporating netwo...
goemgqya030
 

Recently uploaded (20)

PDF
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
PDF
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
PDF
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
PDF
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
PPTX
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
PPT
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
PPTX
Growth and development and milestones, factors
BHUVANESHWARI BADIGER
 
PDF
The Different Types of Non-Experimental Research
Thelma Villaflores
 
PPTX
Neurodivergent Friendly Schools - Slides from training session
Pooky Knightsmith
 
PDF
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
PPTX
How to Set Up Tags in Odoo 18 - Odoo Slides
Celine George
 
PDF
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
PDF
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
PDF
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 
PPTX
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
PPTX
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
PPTX
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
PPTX
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
PDF
The-Ever-Evolving-World-of-Science (1).pdf/7TH CLASS CURIOSITY /1ST CHAPTER/B...
Sandeep Swamy
 
PDF
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
Isharyanti-2025-Cross Language Communication in Indonesian Language
Neny Isharyanti
 
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
The Constitution Review Committee (CRC) has released an updated schedule for ...
nservice241
 
0725.WHITEPAPER-UNIQUEWAYSOFPROTOTYPINGANDUXNOW.pdf
Thomas GIRARD, MA, CDP
 
ASRB NET 2023 PREVIOUS YEAR QUESTION PAPER GENETICS AND PLANT BREEDING BY SAT...
Krashi Coaching
 
Talk on Critical Theory, Part One, Philosophy of Social Sciences
Soraj Hongladarom
 
Growth and development and milestones, factors
BHUVANESHWARI BADIGER
 
The Different Types of Non-Experimental Research
Thelma Villaflores
 
Neurodivergent Friendly Schools - Slides from training session
Pooky Knightsmith
 
Exploring the Different Types of Experimental Research
Thelma Villaflores
 
How to Set Up Tags in Odoo 18 - Odoo Slides
Celine George
 
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
Generative AI: it's STILL not a robot (CIJ Summer 2025)
Paul Bradshaw
 
DIGESTION OF CARBOHYDRATES,PROTEINS,LIPIDS
raviralanaresh2
 
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
2025 Winter SWAYAM NPTEL & A Student.pptx
Utsav Yagnik
 
The-Ever-Evolving-World-of-Science (1).pdf/7TH CLASS CURIOSITY /1ST CHAPTER/B...
Sandeep Swamy
 
The History of Phone Numbers in Stoke Newington by Billy Thomas
History of Stoke Newington
 
Ad

Mastering Nginx Converted Dimitri Aivaliotis

  • 1. Mastering Nginx Converted Dimitri Aivaliotis download https://ebookbell.com/product/mastering-nginx-converted-dimitri- aivaliotis-54165000 Explore and download more ebooks at ebookbell.com
  • 2. Here are some recommended products that we believe you will be interested in. You can click the link to download. Mastering Nginx Dimitri Aivaliotis https://ebookbell.com/product/mastering-nginx-dimitri- aivaliotis-4332426 Mastering Nginx 1st Edition Dimitri Aivaliotis https://ebookbell.com/product/mastering-nginx-1st-edition-dimitri- aivaliotis-230304560 Mastering Collaboration In A Product Team 70 Techniques To Help Teams Build Better Products 1st Edition Natasha Hampshire Glaudia Califano David Spinks https://ebookbell.com/product/mastering-collaboration-in-a-product- team-70-techniques-to-help-teams-build-better-products-1st-edition- natasha-hampshire-glaudia-califano-david-spinks-44875474 Mastering Collaboration In A Product Team 70 Techniques To Help Teams Build Better Products 1st Edition Natasha Hampshire https://ebookbell.com/product/mastering-collaboration-in-a-product- team-70-techniques-to-help-teams-build-better-products-1st-edition- natasha-hampshire-44915468
  • 3. Mastering Gnome A Beginners Guide 1st Edition Sufyan Bin Uzayr https://ebookbell.com/product/mastering-gnome-a-beginners-guide-1st- edition-sufyan-bin-uzayr-46082774 Mastering Flutter A Beginners Guide 1st Edition Sufyan Bin Uzayr https://ebookbell.com/product/mastering-flutter-a-beginners-guide-1st- edition-sufyan-bin-uzayr-46082778 Mastering Rust A Beginners Guide 1st Edition Sufyan Bin Uzayr https://ebookbell.com/product/mastering-rust-a-beginners-guide-1st- edition-sufyan-bin-uzayr-46151622 Mastering Rust A Beginners Guide 1st Edition Sufyan Bin Uzayr https://ebookbell.com/product/mastering-rust-a-beginners-guide-1st- edition-sufyan-bin-uzayr-46191750 Mastering Primary Science Amanda Mccrory Kenna Worthington https://ebookbell.com/product/mastering-primary-science-amanda- mccrory-kenna-worthington-46236134
  • 6. Table of Contents Mastering NGINX Credits About the Author About the Reviewers www.PacktPub.com Support files, eBooks, discount offers and more Why Subscribe? Free Access for Packt account holders Preface What this book covers What you need for this book Who this book is for Conventions Reader feedback Customer support Downloading the example code Errata Piracy Questions 1. Installing NGINX and Third-Party Modules Installing NGINX using a package manager CentOS Debian Installing NGINX from source Preparing a build environment Compiling from source Table: Common configure options Table: Configure options for optimization Configuring for web or mail service Configure options for a mail proxy Table: Mail configure options Configure the options to specify paths
  • 7. Table: HTTP configure options Enabling various modules Table: HTTP module configure options Disabling unused modules Table: Disable configure options Finding and installing third-party modules Putting it all together Summary 2. A Configuration Guide The basic configuration format NGINX global configuration parameters Table: Global configuration directives Using include files The HTTP server section Client directives Table: HTTP client directives File I/O directives Table: HTTP file I/O directives Hash directives Table: HTTP hash directives Socket directives Table: HTTP socket directives Sample configuration The virtual server section Table: listen parameters Locations – where, when, and how Table: Location modifiers Table: Location-only directives The mail server section Table: Mail module directives Table: Mail SSL directives Full sample configuration Summary 3. Using the Mail Module Basic proxy service POP3 service
  • 8. IMAP service SMTP service Using SSL/TLS Complete mail example Authentication service Combining with memcached Interpreting log files Operating system limits Summary 4. NGINX as a Reverse Proxy Introduction to reverse proxying The proxy module Table: Proxy module directives Legacy servers with cookies The upstream module Table: Upstream module directives Keepalive connections Load-balancing algorithms Types of upstream servers Single upstream server Multiple upstream servers Non-HTTP upstream servers Memcached upstream servers FastCGI upstream servers SCGI upstream servers uWSGI upstream servers Converting an "if"-fy configuration to a more modern interpretation Using error documents to handle upstream problems Determining the client's real IP address Summary 5. Reverse Proxy Advanced Topics Security through separation Encrypting traffic with SSL Authenticating clients using SSL Blocking traffic based on originating IP address Isolating application components for scalability
  • 9. Reverse proxy performance tuning Buffering Table: Proxy module buffering directives Caching Table: Proxy module caching directives Storing Compressing Table: Gzip module directives Summary 6. The NGINX HTTP Server NGINX's architecture The HTTP core module The server Table: HTTP server directives Logging Table: HTTP logging directives Table: Log format variables Finding files Table: HTTP file-path directives Name resolution Table: Name resolution directives Client interaction Table: HTTP client interaction directives Using limits to prevent abuse Table: HTTP limits directives Restricting access Table: HTTP access module directives Streaming media files Table: HTTP streaming directives Predefined variables Table: HTTP variables Using NGINX with PHP-FPM Table: FastCGI directives An example Drupal configuration Wiring NGINX and uWSGI together An example Django configuration
  • 10. Summary 7. NGINX for the Developer Caching integration No application caching Caching in the database Table: Memcached module directives Caching in the filesystem Table: Header modifying directives Changing content on-the-fly The addition module Table: HTTP addition module directives The sub module Table: HTTP sub module directives The xslt module Table: HTTP XSLT module directives Using Server Side Includes Table: Server Side Includes directives Table: Server Side Includes commands Decision-making in NGINX Table: Perl module directives Creating a secure link Generating images Table: Image filter directives Tracking website visitors Table: UserID module directives Preventing inadvertent code execution Summary 8. Troubleshooting Techniques Analyzing log files Error log file formats Error log file entry examples Configuring advanced logging Debug logging Switching binaries at runtime Using access logs for debugging Common configuration errors
  • 11. Using if instead of try_files Using if as a hostname switch Not using the server context to best effect Operating system limits File descriptor limits Network limits Performance problems Using the Stub Status module Summary A. Directive Reference Table: Directive reference B. Rewrite Rule Guide Introducing the rewrite module Table: Rewrite module directives Creating new rewrite rules Translating from Apache Rule #1: Replace directory and file existence checks with try_files Rule #2: Replace matches against REQUEST_URI with a location Rule #3: Replace matches against HTTP_HOST with a server Rule #4: Replace RewriteCond with if for variable checks Summary C. The NGINX Community Mailing list IRC channel Web resources Writing a good bug report Summary D. Persisting Solaris Network Tunings Index
  • 13. Mastering NGINX Copyright © 2013 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: March 2013 Production Reference: 1070313 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK.. ISBN 978-1-84951-744-7 www.packtpub.com
  • 14. Cover Image by Asher Wishkerman (<[email protected]>)
  • 15. Credits Author Dimitri Aivaliotis Reviewers Yasir Adnan Andrew Alexeev Antonio P. P. Almeida Rainer Duffner Acquisition Editor Usha Iyer Lead Technical Editor Azharuddin Sheikh Technical Editors Varun Pius Rodrigues Lubna Shaikh Project Coordinator Abhishek Kori Proofreader Aaron Nash
  • 16. Indexer Tejal Soni Graphics Aditi Gajjar Production Coordinator Manu Joseph Cover Work Manu Joseph
  • 17. About the Author Dimitri Aivaliotis works as a Systems Architect at a hosting provider in Zurich, Switzerland. His career has taken him from building a Linux- based computer network for a school up through dual-datacenter high-availability infrastructures for banks and online portals. He has spent over a decade solving his customers’ problems and discovered NGINX along the way. He uses the software daily to provide web serving, proxying, and media-streaming services to his customers. Dimitri graduated summa cum laude with a BS in Physics from Rensselaer Polytechnic Institute and received an MS in Management Information Systems at Florida State University. This is his first book. I would like to thank John Blackwell and Phil Margolis for reading early drafts of the manuscript. Their criticism and tips have helped me greatly and made this a better book. I would also like to thank the technical reviewers for providing constructive feedback and pointing out errors I have made along the way. Any remaining errors are of course my own. The team at Packt Publishing has been really supportive in getting this project off the ground.Their faith in me as a writer has bolstered me during the dark times of missed deadlines. The knowledge and support of the NGINX, Inc. team has been instrumental in filling in the gaps in my understanding of how NGINX works. I could not have written this book without them. An especially heartfelt thanks goes out to my family. My wife and children have had to cope with my many writing sessions. Their patience during this time is greatly appreciated.
  • 18. About the Reviewers Yasir Adnan lives in Dhaka, Bangladesh. He is a computer science student. He also works as a freelance programmer. He has worked on both mobile and web applications. Nowadays he mainly develops mobile applications. He can be reached at <[email protected]>. Andrew Alexeev is a co-founder of NGINX, Inc.—the high performance web company behind the NGINX web server. Prior to joining NGINX, Inc. at the beginning of 2011, Andrew worked in the Internet industry and in a variety of ICT divisions for enterprises. Andrew holds a diploma in Electronics from St. Petersburg Electrotechnical University and an executive MBA from Antwerp Management School. Antonio P.P. Almeida (@perusio) has been obsessed with NGINX and high-performance web stacks ever since he was trying to develop for Drupal on a battered 1.3 GHz Centrino-based laptop and Apache’s resource appetite made NGINX inevitable. He has been learning how to get the most out of NGINX in all possible kinds of applications, in particular all the subtleties of NGINX configuration language. He lives and works in Paris. Besides NGINX, his other main obsessions are obscure late Italian medieval music, cinema, and how to make Drupal more awesome. Rainer Duffner received a degree in Information Systems from the University of Applied Science in Konstanz, Germany, and currently works as a Systems Engineer at EveryWare AG, where he helps customers get the most out of their managed dedicated FreeBSD, Linux, and Solaris servers. He lives in a small town next to Zurich, Switzerland, and enjoys spending his free time on a mountain bike around Zurich and the Swiss mountains.
  • 19. I’d like to thank Dimitri for the opportunity to help review this fine book. It’s a useful resource all along.
  • 20. www.PacktPub.com Support files, eBooks, discount offers and more You might want to visit www.PacktPub.com for support files and downloads related to your book. Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details. At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks. http://PacktLib.PacktPub.com Do you need instant solutions to your IT questions? PacktLib is Packt’s online digital book library. Here, you can access, read and search across Packt’s entire library of books. Why Subscribe?
  • 21. Fully searchable across every book published by Packt Copy and paste, print and bookmark content On demand and accessible via web browser Free Access for Packt account holders If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access. Dedicated to my father, who has always said I can do anything I set my mind to.
  • 22. Preface NGINX is a high-performance web server designed to use very few system resources. There are many how-to's and example configurations floating around on the Web. This guide will serve to clarify the murky waters of NGINX configuration. In doing so you will learn how to tune NGINX for various situations, what some of the more obscure configuration options do, and how to design a decent configuration to match your needs. You will no longer feel the need to copy-paste a configuration snippet because you will understand how to construct a configuration file to do exactly what you want it to do. This is a process, and there will be bumps along the way, but with the tips explained in this book you will feel comfortable writing an NGINX configuration file by hand. In case something doesn't work as expected, you will be able to debug the problem yourself or at least be capable of asking for help without feeling like you haven't given it a try yourself. This book is written in a modular fashion. It is laid out to help you get to the information you need as quickly as possible. Each chapter is pretty much a standalone piece. Feel free to jump in anywhere you feel you need to get more in-depth about a particular topic. If you feel you have missed something major, go back and read the earlier chapters. They are constructed in a way to help you grow your configuration piece-by-piece.
  • 23. What this book covers Chapter 1, Installing NGINX and Third-Party Modules, teaches you how to install NGINX on your operating system of choice and how to include third-party modules in your installation. Chapter 2, A Configuration Guide, explains the NGINX configuration file format. You will learn what each of the different contexts are for, how to configure global parameters, and what a location is used for. Chapter 3, Using the Mail Module, explores NGINX's mail proxy module, detailing all aspects of its configuration. An example authentication service is included in the code for this chapter. Chapter 4, NGINX as a Reverse Proxy, introduces the concept of a reverse proxy and describes how NGINX fills that role. Chapter 5, Reverse Proxy Advanced Topics, delves deeper into using NGINX as a reverse proxy to solve scaling issues and performance problems. Chapter 6, The NGINX HTTP Server, describes how to use the various modules included with NGINX to solve common web serving problems. Chapter 7, NGINX for the Developer, shows how NGINX can be integrated with your application to deliver content to your users more quickly. Chapter 8, Troubleshooting Techniques, investigates some common configuration problems, how to debug a problem once it arises, and makes some suggestions for performance tuning. Appendix A, Directive Reference, provides a handy reference for the configuration directives used throughout the book, as well as a
  • 24. selection of others not previously covered. Appendix B, Rewrite Rule Guide, describes how to use the NGINX rewrite module and describes a few simple steps for converting Apache-style rewrite rules into ones NGINX can process. Appendix C, Community, introduces you to the online resources available to seek more information. Appendix D, Persisting Solaris Network Tunings, details what is necessary to persist different network tuning changes under Solaris 10 and above.
  • 25. What you need for this book Any modern Linux PC should be sufficient to run the code samples in the book. The installation instructions are given in each chapter that uses code samples. Basically, it boils down to: A build environment: Compiler, header files, and a few more NGINX: Most recent version should be fine Ruby: Best installed from https://rvm.io Perl: Default version should be fine
  • 26. Who this book is for This book is for experienced systems administrators or systems engineers, familiar with installing and configuring servers to meet specific needs. You do not need to have experience using NGINX already.
  • 27. Conventions In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning. Code words in text are shown as follows: "NGINX will attempt to build a dependent library statically if you include a ––with-<library>= <path> option to configure." A block of code is set as follows: $ export BUILD_DIR=`pwd` $ export NGINX_INSTALLDIR=/opt/nginx $ export VAR_DIR=/home/www/tmp $ export LUAJIT_LIB=/opt/luajit/lib $ export LUAJIT_INC=/opt/luajit/include/luajit- 2.0 When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold: $ export BUILD_DIR=`pwd` $ export NGINX_INSTALLDIR=/opt/nginx $ export VAR_DIR=/home/www/tmp $ export LUAJIT_LIB=/opt/luajit/lib $ export LUAJIT_INC=/opt/luajit/include/luajit- 2.0 Any command-line input or output is written as follows: $ mkdir $HOME/build $ cd $HOME/build && tar xzf nginx-<version- number>.tar.gz New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in
  • 28. the text like this: "clicking the Next button moves you to the next screen". Note Warnings or important notes appear in a box like this. Tip Tips and tricks appear like this.
  • 29. Reader feedback Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of. To send us general feedback, simply send an e-mail to <[email protected]>, and mention the book title via the subject of your message. If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.
  • 30. Customer support Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase. Downloading the example code You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e- mailed directly to you. Errata Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the errata submission form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support. Piracy Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright
  • 31. and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy. Please contact us at <[email protected]> with a link to the suspected pirated material. We appreciate your help in protecting our authors, and our ability to bring you valuable content. Questions You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.
  • 32. Chapter 1. Installing NGINX and Third-Party Modules NGINX was first conceived to be an HTTP server. It was created to solve the C10K problem, described by Daniel Kegel at http://www.kegel.com/c10k.html, of designing a web server to handle 10,000 simultaneous connections. NGINX is able to do this through its event-based connection-handling mechanism, and will use the OS- appropriate event mechanism in order to achieve this goal. Before we begin exploring how to configure NGINX, we will first install it. This chapter details how to install NGINX itself and how to get the correct modules installed and configured. NGINX is modular by design, and there is a rich community of third-party module developers who have added functionality to the core NGINX server by creating modules that can be compiled into the server and installed along with it. In this chapter, we will cover: Installing NGINX using a package manager Installing NGINX from source Configuring for web or mail service Enabling various modules Finding and installing third-party modules Putting it all together Installing NGINX using a package manager Chances are that your operating system of choice already provides nginx as a package. Installing it is as simple as using your package
  • 33. manager's commands: Linux (deb-based) sudo apt-get install nginx Linux (rpm-based) sudo yum install nginx FreeBSD sudo pkg_install -r nginx Note The sudo command is representative of what you need to execute on your operating system to achieve superuser ('root') privileges. If your operating system supports RBAC (Role-based access control), then you would use a different command, such as 'pfexec' to achieve the same goal. These commands will install NGINX into standard locations, specific to your operating system. This is the preferred installation method if you need to use your operating system's packages. The NGINX core team also provides binaries of the stable version, available from http://nginx.org/en/download.html. Users of distributions without an nginx package (such as CentOS), can use the following instructions to install pre-tested, pre-compiled binaries. CentOS
  • 34. Add the NGINX repository to your yum configuration by creating the following file: sudo vi /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/6/$base arch/ gpgcheck=0 enabled=1 Then install nginx by executing the following command: sudo yum install nginx Alternative instructions for installing an nginx-release package are available at the preceding URL. Debian Install the NGINX signing key by downloading it from http://nginx.org/keys/nginx_signing.key and adding it to the apt keyring: sudo apt-key add nginx_signing.key Append the nginx.org repository to the end of /etc/apt/sources.list: vi /etc/apt/sources.list deb http://nginx.org/packages/debian/ squeeze nginx deb-src http://nginx.org/packages/debian/ squeeze nginx Then install nginx by executing the following command:
  • 35. sudo apt-get update sudo apt-get install nginx If your operating system does not include nginx in its list of available packages, the version there is too old for what you would like to do, the packages at nginx.org don't serve your needs, or you would like to use the "development" release of NGINX, then compiling NGINX from source is the only other option.
  • 36. Installing NGINX from source NGINX downloads are available for two separate branches of NGINX code—stable and development. The development branch is the one in which active development is taking place. Here is where new features will be found and integrated before finding their way into the stable branch. When a "development" version is released, it has undergone the same QA and a similar set of functional tests as the stable branch, so either branch may be used on production systems. The major difference between the two branches lies in the support of third-party modules. The internal API may change in the development release, whereas it stays the same on the stable branch, so backward compatibility for third-party modules is only available for stable releases. Preparing a build environment In order to compile NGINX from source, certain requirements need to be met on your system. Besides a compiler, you also need the OpenSSL and PCRE (Perl Compatible Regular Expressions) libraries and development headers, if you want to enable the SSL support and be able to use the rewrite module, respectively. Depending on your system, these requirements may already be met in the default installation. If not, you will need to either locate the appropriate package and install it, or download the source, unpack it, and point NGINX's configure script to this location. NGINX will attempt to build a dependent library statically if you include a –with-<library>=<path> option to configure. You might want this if you would like to ensure that NGINX is not dependent on any other part of the system and/or would like to squeeze that extra bit of performance out of your nginx binary. If you are using features of external libraries that are only available from a certain version onwards (for example, the Next Protocol Negotiation TLS extension
  • 37. available from OpenSSL Version 1.0.1), then you would have to specify the path to the unpacked sources of that particular version. There are other, optional, packages that you may provide support for if you like. These include MD5 and SHA-1 hashing algorithm support, zlib compression, and libatomic library support. The hashing algorithms are used in many places in NGINX, for example, to compute the hash of a URI to determine a cache key. The zlib compression library is used for delivering gzipped content. If the atomic_ops library is available, NGINX will use its atomic memory update operations to implement high-performance memory-locking code. Compiling from source NGINX may be downloaded from http://nginx.org/en/download.html. Here you will find the source of either branch in the .tar.gz or .zip format. Unpack the archive into a temporary directory as follows: $ mkdir $HOME/build $ cd $HOME/build && tar xzf nginx-<version- number>.tar.gz Configure it using the following command: $ cd $HOME/build/nginx-<version-number> && ./configure And compile it as follows: $ make && sudo make install When compiling your own nginx binary, you are much more free to include only what you need. Can you already say under which user NGINX should run? Do you want to specify the default logfile locations so that they don't need to be explicitly set in the
  • 38. configuration? The following table of configure options will help you design your own binary. These are options that are valid for NGINX independent of which module is activated. Table: Common configure options Option Explanation --prefix= <path> The root of the installation. All other installation paths are relative to this one. --sbin-path= <path> The path to the nginx binary. If not specified, this will be relative to the prefix. --conf-path= <path> The path to where nginx will look for its configuration file, if not specified on the command line. --error-log- path=<path> This is where nginx will write its error logfile, unless configured otherwise. --pid-path= <path> This is where nginx will write the pid file of the master process, usually under /var/run. --lock-path= <path> The path to the shared memory mutex lock file.
  • 39. Option Explanation --user= <user> The user under which the worker processes should run. --group= <group> The group under which the worker processes should run. --with-file- aio. Enables asynchronous I/O for FreeBSD 4.3+ and Linux 2.6.22+ --with-debug This option will enable debug logging. Not recommended for production systems. You are also able to compile with optimizations that you may not get in a packaged installation. This is where the following options can be especially useful: Table: Configure options for optimization Option Explanation --with- cc=<path> If you would like to set a C compiler that is not in your default PATH.
  • 40. Option Explanation --with- cpp= <path> This is the corresponding path to the C preprocessor. --with- cc-opt= <options> Here is where the path to the necessary include files may be indicated (-I<path>), as well as optimizations (- O4) and specifying a 64-bit build. --with- ld-opt= <options> The options to the linker include library path (-L<path>) and run path (-R<path>). --with- cpu-opt= <cpu> A build specific to a particular CPU family may be specified with this option.
  • 41. Configuring for web or mail service NGINX is unique among high-performing web servers in that it was also designed to be a mail proxy server. Depending on your goals in building NGINX, you can configure it for web acceleration, a web server, a mail proxy, or all of them. It may be beneficial to have one package that you can install on any server in your infrastructure and be able to set NGINX's role through configuration, or it may serve your needs better to have a slimmed-down binary to use in high- performance environments where every extra KB counts. Configure options for a mail proxy The following table specifies configuration options that are unique to the mail module: Table: Mail configure options Option Explanation --with-mail This will enable the mail module, which is not activated by default. --with- mail_ssl_module In order to proxy any kind of mail transaction that uses SSL/TLS, this module will need to be activated.
  • 42. Option Explanation --without- mail_pop3_module When enabling the mail module, the POP3 module may be disabled separately. --without- mail_imap_module When enabling the mail module, the IMAP module may be disabled separately. --without- mail_smtp_module When enabling the mail module, the SMTP module may be disabled separately. --without-http This option will completely disable the http module; use it if you know you only want to compile in mail support. For a typical mail proxy, I would recommend configuring NGINX as follows: $ ./configure --with-mail --with-mail_ssl_module --with-openssl=${BUILD_DIR}/openssl-1.0.1c SSL/TLS is needed nowadays on almost every mail installation and not having it enabled on a mail proxy robs users of expected functionality. I've recommended compiling OpenSSL statically so that there are no dependencies on the operating system's OpenSSL library. The BUILD_DIR variable referenced in the preceding command would of course have to be set beforehand. Configure the options to specify paths
  • 43. The following table shows what configuration options are available to the http module, from activating the Perl module to specifying the location of temporary directories: Table: HTTP configure options Option Explanation --without-http- cache When using the upstream module, NGINX can be configured to cache the contents locally. This option disables that cache. --with- http_perl_module NGINX configuration can be extended by using Perl code. This option activates that module. (Use of this module, however, degrades performance.) --with- perl_modules_path= <path> This option specifies the path to additional Perl modules needed for using the embedded Perl interpreter. It may also be specified as a configuration option. --with-perl=<path> The path to Perl (Version 5.6.1 and higher), if not found on the default path. --http-log-path= <path> The default path to the HTTP access log.
  • 44. Option Explanation --http-client- body-temp-path= <path> When receiving the request from the client, this is the directory used as a temporary location for the body of that request. If the WebDAV module is enabled, it is recommended to set this path to be on the same filesystem as the final destination. --http-proxy-temp- path=<path> When proxying, this is the directory used as a location to store temporary files. --http-fastcgi- temp-path=<path> The location for FastCGI temporary files. --http-uwsgi-temp- path=<path> The location for uWSGI temporary files. --http-scgi-temp- path=<path> The location for SCGI temporary files.
  • 45. Enabling various modules Besides the http and mail modules, there are a number of other modules included in the NGINX distribution. These modules are not activated per default, but may be enabled by setting the appropriate configuration option --with-<module-name>_module. Table: HTTP module configure options Option Explanation --with-http_ssl_module If you need to encrypt web traffic, you will need this option to be able to use URLs beginning with https. (Requires the OpenSSL library.) --with- http_realip_module If your NGINX will be behind a L7 load balancer or other device that passes the client's IP address in an HTTP header, you will need to enable this module. For use in situations where multiple clients appear to come from one IP address. --with- http_addition_module This module works as an output filter, enabling you to add content of a different location before or after that of the location itself.
  • 46. Option Explanation --with-http_xslt_module This module will handle transformations of XML responses, based on one or more XSLT stylesheets. (Requires the libxml2 and libxslt libraries.) --with- http_image_filter_module This module is able to act as a filter on images, processing them before handing them over to the client. (Requires the libgd library.) --with-http_geoip_module With this module, you are able to set various variables to use in configuration blocks to make decisions based on the geographic location found for a client's IP address. (Requires the MaxMind GeoIP library and the corresponding precompiled database files.) --with-http_sub_module This module implements a substitution filter, replacing one string in the response with another.
  • 47. Option Explanation --with-http_dav_module Enabling this module will activate the configuration directives for using WebDAV. Note that this module should only be enabled on a need-to-use basis, as it could present security problems if configured incorrectly. --with-http_flv_module If you need to be able to stream Flash video files, this module will provide for pseudo-streaming. --with-http_mp4_module This module supports pseudo-streaming for H.264/AAC files. --with- http_gzip_static_module Use this module if you would like to support sending pre-compressed versions of static files when the resource is called without the .gz ending. --with- http_gunzip_module This module will decompress pre- compressed content for clients that do not support gzip encoding.
  • 48. Option Explanation --with- http_random_index_module If you would like to serve an index file chosen at random from the files in a directory, then this module needs to be enabled. --with- http_secure_link_module This module provides a mechanism to hash a link to a URL, so that only those with the proper password would be able to calculate the link. --with- http_stub_status_module Enabling this module will help you gather statistics from NGINX itself. The output can be graphed using RRDtool or something similar. As you can see, these are all modules that build upon the http module, providing extra functionality. Enabling the modules at compile time should not affect runtime performance at all. Using the modules later in the configuration is where performance may be impacted. I would therefore recommend the following configure options for a web accelerator/proxy: $ ./configure --with-http_ssl_module --with- http_realip_module --with-http_geoip_module -- with-http_stub_status_module --with- openssl=${BUILD_DIR}/openssl-1.0.1c And the following for a web server:
  • 49. $ ./configure --with-http_stub_status_module The difference lies in where NGINX will be faced with clients. The web acceleration role would take care of terminating SSL requests as well as dealing with proxied clients and making decisions based on where a client came from. The web server role would need only provide default file serving capability. I would recommend always enabling the stub_status module, as it provides a means of gathering metrics on how your NGINX is performing. Disabling unused modules There are also a number of http modules that are normally activated, but may be disabled by setting the appropriate configuration option -- without-<module-name>_module. If you have no use for these modules in your configuration, you can safely disable them. Table: Disable configure options Option Explanation --without- http_charset_module The charset module is responsible for setting the Content-Type response header, as well as converting from one charset to another.
  • 50. Option Explanation --without-http_gzip_module The gzip module works as an output filter, compressing content as it's delivered to the client. --without-http_ssi_module This module is a filter that processes Server Side Includes. If the Perl module is enabled, an additional SSI command (perl) is available. --without-http_userid_module The userid module enables NGINX to set cookies that can be used for client identification. The variables $uid_set and $uid_got can then be logged for user tracking. --without-http_access_module The access module controls access to a location based on IP address. --without- http_auth_basic_module This module limits access via HTTP Basic Authentication. --without- http_autoindex_module The autoindex module enables NGINX to generate a directory listing for directories that have no index file.
  • 51. Option Explanation --without-http_geo_module This module enables you to set up configuration variables based on a client's IP address and then take action on the value of those variables. --without-http_map_module The map module enables you to map one variable to another. --without- http_split_clients_module This module creates variables that can be used for A/B testing. --without- http_referer_module This module enables NGINX to block requests based on the Referer HTTP header. --without- http_rewrite_module The rewrite module allows you to change URIs based on various conditions. --without-http_proxy_module The proxy module allows NGINX to pass requests on to another server or group of servers.
  • 52. Option Explanation --without- http_fastcgi_module The FastCGI module enables NGINX to pass requests to a FastCGI server. --without-http_uwsgi_module This module enables NGINX to pass requests to a uWSGI server. --without-http_scgi_module The SCGI module enables NGINX to pass requests to an SCGI server. --without- http_memcached_module This module enables NGINX to interact with a memcached server, placing responses to queries into a variable. --without- http_limit_conn_module This module enables NGINX to set connection limits based on certain keys, usually an IP address. --without- http_limit_req_module With this module, NGINX can limit the request rate per key.
  • 53. Option Explanation --without- http_empty_gif_module The empty GIF module produces a 1 x 1-pixel in-memory transparent GIF. --without- http_browser_module The browser module allows for configurations based on the User- Agent HTTP request header. Variables are set based on the version found in this header. --without- http_upstream_ip_hash_module This module defines a set of servers that may be used in conjunction with the various proxy modules.
  • 54. Finding and installing third-party modules As with many open source projects, there is an active developer community surrounding NGINX. Thanks to NGINX's modular nature, this community is able to develop and publish modules to provide additional functionality. They cover a wide range of applications, so it pays to take a look at what is available before embarking on developing your own module. The procedure for installing a third-party module is fairly straightforward: 1. Locate the module you would like to use (either search on https://github.com or see http://wiki.nginx.org/3rdPartyModules). 2. Download the module. 3. Unpack the source. 4. Read the README file, if included. See if there are any dependencies that you will need to install. 5. Configure NGINX to use the module as follows. /configure – add-module=<path>. This procedure will give you an nginx binary with the additional functionality of that module. Keep in mind that many third-party modules are of an experimental nature. Test using a module first before rolling it out on production systems. And remember that the development releases of NGINX may have API changes that can cause problems with third-party modules. Special mention should be made here of the ngx_lua third-party module. The ngx_lua module serves to enable Lua instead of Perl as
  • 55. Random documents with unrelated content Scribd suggests to you:
  • 56. Passions, 97. St. Matthew, xvii, xviii, 88. Ich will bei meinem Jesu wachen, xviii. O Haupt voll Blut und Wunden, 62 (footnote). O Lamm Gottes, unschuldig, 81. O Mensch, bewein' dein' Sünde gross, 81. Wenn ich einmal soll scheiden, 99. Oratorios: Christmas, 98. Pastorale, 83. Easter, 98. Ascension, 98. Theoretical. Die Kunst der Fuge, 68.
  • 57. FOOTNOTES [1] "Ich dachte, diese Kunst wäre ausgestorben; ich sehe aber, dass sie in Ihnen noch lebt." [2] See organo pleno, p. 70. [3] The French are accustomed to group registers of similar quality, but varying in pitch, under a single name; as bourdons (stopped wood pipes), montres (diapasons), anches (reeds), qualifying them by the pitch; e.g., bourdons of 16' and 8' would be equivalent to our bourdon and stopped diapason, or gedackt. —Tr. [4] Take the most beautiful type of the Plain-chant, for instance: the Te Deum. Simply vocalize it, sing it without words; rhythm, beauty, grandeur, all disappear. Translate it, and sing the same music with either French or German text, it becomes absurd. If the Roman Church had not prescribed Latin as the language of its liturgy, we should have no Plain-chant to-day. [5] In the larger churches in Paris (and in that city the greatest attention is given to the perpetuation and cultivation of Plain- chant) are usually found two organs; the larger one located in a gallery, or tribune, at the west end of the church; the smaller one, with the choir (invariably of men and boys), being placed behind the altar, between it and the ambulatory. This smaller instrument, often augmented by one or more double-basses, serves only to accompany the choir, while the larger organ, called the Grand-orgue, is treated only as a solo instrument, either antiphonally with the choir and small organ, as in the Kyrie, or in solo selections, often improvisations of great merit, as at the Offertory.—Tr. [6] Born about 1545 at Ferrara, organist and choirmaster in his native city. The "Transilvano" of Girolamo Diruta contains of his
  • 58. composition a Toccata in the fourth mode, and two Ricercare; one in the first, the other in the second mode. [7] His father, Alexandre Milleville, was born in Paris about 1509, and died September 7, 1589, in Ferrara, where he was choirmaster. His most distinguished pupil was Ercole Pasquini, the predecessor of Frescobaldi at St. Peter's in Rome. [8] He died in 1521, in the service of the Emperor of Austria. Luther said of him: "This man is truly a master of notes; they must subject themselves to his will, while other composers are compelled to obey them." And again, "His works express perfect contentment, like the song of finches." [9] Peter Phillipps and Peter Cornet were the best-known organists in the Netherlands. One may judge of their works by the excerpts in G.A. Ritter's Geschichte des Orgelspiels (Leipzig, 1884), Nos. 28, 30, 31, and 32 (2d part). [10] Luzzasco Luzzaschi, whose compositions were for that time of great value, was charged by Guidiccioni with inability to play trills and to bring out in relief the details of the counterpoint, which were blurred under a hard, heavy touch. [11] We will not enumerate here all of Frescobaldi's works; we must be content to mention or analyze only those which from the point of view of our present study are most significant. [12] The following is the complete title: Fiori musicali di diverse compositione, Toccate, Kyrie, Canzoni, Cappricci, e Ricercare in partitura a 4 utili per sonatori. Autore Girolamo Frescobaldi, organista di San Pietro di Roma. Opera duodecima. Con Privilegio. In Venetia. Apresso Alessandro Vicenti, 1635. The volume bears the arms of Cardinal Ant. Barberino, to whom the work is inscribed (the dedication is dated August 20, 1635). The music is written in score, on four staves, each part with its proper clef; the rests are carefully written out. [13] This precious copy, of 104 pages (like the original), is dated 1714, and preserved in the library of the Kgl. Institut für
  • 59. Kirchenmusik, at Berlin. [14] With Frescobaldi we find no final cadence other than a perfect major; at his time the idea of a major or minor tonality was still to be conceived, and even for a long time after this distinction was finally made the custom prevailed of ending a piece written in a minor key by a major chord. Thus, in a collection of 371 chorales by J.S. Bach, of which 113 are in the minor mode, 108 of the latter end with a major chord. [15] Il secondo libro di Toccate, Canzoni, Versi d'hinni, Magnificat, Gagliarde, Correnti e altre Partite d'Intavolatura di cembalo e organo di Girolamo Frescobaldi. Con Privilegio. In Roma, con licenza de' Superiori. 1627. Da Nicolo Borbone. [16] Ricercata, of which the fifth part must be sung, without being played. [17] The circle, possessing neither beginning nor end, conveys the impression of the infinite, of perfection. This perfection is attributed to the number three; according to Franco of Cologne, the chief number, because of the Trinity, "vera et summa perfectio." (Musica et cantus mensurabilis, Chap. IV.) [18] Il primo libro di capricci, canzoni francese e ricercari fatti sopra diversi soggetti et arie in partitura. Di Girolamo Frescobaldi, organista in San Pietro di Roma. Novamente ristampati. Con privilegio. In Venezia, appresso Alessandro Vicenti, 1642. An earlier edition dates from 1626, and is only the collection in a single volume of the works published in 1615 and 1624. [19] The following is a facsimile of this tablature, taken from the beginning of the sixth Toccata in the second book (pp. 16-20), per l'organo sopra i pedali e senza:
  • 60. [ [MusicXML] [20] According to Michael Praetorius (Syntagma musicum, 1619) the Toccata was a prelude, a trial of the keyboard, as it were; a fantasia wholly devoid of form, where the organist improvised, alternating long-sustained chords with rapid passages. It was something entirely spontaneous in nature, in which every imperfection was pardoned, provided the performance was characterized by sufficient dash. The Toccatas of Frescobaldi, by virtue of their steadiness and of the balance of their parts, rise far above such a definition, which is justly applicable to the Toccatas of Claudio Merulo and of Gabrielli. [21] This theme was again used by G.B. Fasolo (1645) and Fr. A. Scherer. Fasolo's version reminds us of the fugue in A major of J.S. Bach; it runs: [ [MusicXML] [22] The Pastorale belongs to the "Toccate d'intavolatura di Cembalo et organo. Partite di diverse Arie e Correnti, Balletti, Ciacone, Passacagli di Girolamo Frescobaldi. Libro Primo.
  • 61. Stampate l'anno 1637 per Nicolo Borbone in Roma." It is a reprint of works already published in different volumes. [23] Compare Sœur Monique, by F. Couperin. [24] Frère Jacques, a popular French tune. [25] This taste was prevalent at the time; Frescobaldi's rival, S. Scheidt, organist at Halle, gives us numerous examples of it: in the first part of the Tabulatura nova (Hamburg, 1624), two Belgian melodies with variations, and the French song, Es ce Mars; in the second part, the English tune de Fortuna. The Tabulatura nova has been reprinted (Denkmäler der Tonkunst). [26] Previous editions are dated 1614 and 1616. Each of these directions, addressed "al lettore," is preceded by its number, according to order; there are no less than nine of them. [27] Geschichte der Musik, vol. iv, p. 438. [28] The records of the city of Halle, from the year 1620 on, do not contain the name Froberger. It is thus useless to entertain the date 1635, given by some historians. [29] At first he received twenty-five florins a month. Later his salary was raised to sixty florins, in addition to gratuities and money for clothing, beginning at twenty florins per year. Two organists were usually in service. [30] He was the father of the astronomer, Christian Huygens. Himself a composer, he was much interested in music. Curious facts concerning musicians of his time will be found in the work of W. Jonckenbloet and Land: Correspondance et œuvres musicales de Constantin Huygens, Leyden, 1882. [31] "des pieces que un nommé Mons. Froberger ma donnez, et qui est un homme tres rare sur les Espinettes." [32] This manuscript, carefully and finely written and embellished with pen-designs, is divided into four volumes, splendidly bound; they are preserved in the library of the Hofburg (the palace of the
  • 62. Emperor of Austria) in Vienna. A large number of the pieces are autographs; Froberger distinguishes these by the words Manu propria. [33] Ferdinand III. was a musician; still extant are an aria of his composition with thirty-six variations, published by Ebner (Gerber), and some litanies in Kircher's Musurgia. [34] It is worthy of notice that, save for the few months which preceded his journey to Rome, Froberger appears and departs, alternately, every four years; with the exception of the leave he obtained from 1645 to 1653—undoubtedly one of four years which he had renewed in 1649. The fulfilment of the duties of the position was assumed by rotation among several organists; like the custom established at the court of Louis XIV., where the four titular organists succeeded each other every three months, or every "quarter." [35] "Allemande de M. Froberger, fait à Paris." It is No. 12 of the manuscript in the Bibliothèque Nationale, Vol. 7, 1862. This volume is ornamented with the arms of Bassyn d'Angervilliers and of N. Mothefelon. The title upon the binding reads: Préludes de M. Couperin. Besides these preludes and the Froberger pieces are contained works of Frescobaldi, Labarre, and Richard de Saint- Jacques. [36] From this vacation seems also to date a journey to Dresden, where he was accorded a magnificent reception by the Elector of Saxony, to whom the Emperor had sent him. [37] In two autograph letters, of June 25 and October 23, 1667, addressed to Christian Huygens, the Princesse de Montbéliard gives details of Froberger's death, expressing her grief at the decease of the "Chevalier," a true "Patron of noble music." These letters, which were discovered in 1874 by Dr. E. Schebeck, have been published by him, somewhat revised, and by Jonckenbloet and Land in their original form. [38] These suites are found in the Vienna manuscript and in one of the Spitta collection. (See Franz Beier: Ueber J.J. Froberger's
  • 63. Leben und Bedeutung für die Klaviersuite.) [39] Unam exhibemus quam D. Io. Jac. Frobergerus organoedus Caesarius celeberrimus olim organoedi Hieron. Frescobaldi discipulus supra UT RE MI FA SOL LA exhibuit. (Musurgia universalis, Vol. i, p. 466.) [40] He excelled in movements in triplets. [41] Anleitung zur musikalischen Gelahrtheit. [42] J.S. Bach is already foreshadowed in Froberger's compositions. Thus, in this double of an Allemande: [ [MusicXML] [43] Kerl was sent to Rome by Emperor Ferdinand III. about 1649; he received some lessons from Carissimi. [44] See Ed. Hanslick: Aus meinem Leben. (Deutsche Rundschau, July, 1894, p. 54.) [45] "Our Father, who art in heaven." This chorale was one of eight published for Pachelbel by Johann Christoph Weigel at
  • 64. Nuremberg about 1693. [46] Georg Muffat, born about 1635, was a pupil of Lully, and studied also in Rome and Vienna. For some time he was organist in Strassburg, and about 1667 entered the service of the Bishop of Salzburg. About 1687 he became organist and master of the pages at the court in Passau. He died there February 23, 1714. He published in 1690, at Augsburg, the "Apparatus musico- organisticus" (re-edited by S. de Lange, Leipzig, 1888), which contains twelve Toccatas, one in each of the Gregorian modes, and some pieces of lesser importance. These Toccatas are a development of the older form of the same name, where brilliant passages, harmonic progressions, or fugal imitations, succeeded each other. From each of these elements Muffat made a whole, developed separately; a similar method suggested in certain Canzoni of Frescobaldi was extended in some of the Capricci of Froberger. Nothing but the too sparing use of the pedal prevents these works from being ranked among the most important. [47] J. Commer. Musica sacra, vol. i, No. 132. [48] Following the publication of the "neu eröffnetes Orchester" of Mattheson, Buttstedt had written an essay entitled: Ut mi sol re fa la Tota musica (Erfurt, 1717), in which he defended the old solmisation, or system of changes, the si, a changeable note, being disregarded. Mattheson answered it the same year by the "neu beschütztes Orchester" (defense of the new orchestra), with the epigraph: Ut mi sol re fa la Todte (nicht tota) Musica,
  • 65. a bad pun on the words tota, the whole, and todte, dead. [49] He was installed in this position April 11, 1668, and upon the third of the following August married Anna Margaretha, daughter of his deceased predecessor. [50] Dietrich Buxtehude's Orgelcompositionen, herausgegeben von P. Spitta. (The first volume contains the preludes, fugues, etc.; the second the chorales.) Leipzig, 1876. [51] It is curious to notice, even in these surroundings, an example of what was in the middle ages called the "proportio hemiolia," the immediate passage from triple to duple time, which we find as late as in the works of Bach and Händel. (See The Messiah, third chorus, thirty-fifth measure.) In endeavoring to accentuate the rhythm, Buxtehude unconsciously breaks it. In reality, the pedal brings an accent upon the third beat; and we obtain, by taking as the first beats of measures the chords marked with a sign: [ [MusicXML] [52] See Merkel (Johann): "Betrachtungen über die deutsche Tonkunst im 18. Jahrhundert." Inaugural-Dissertation zur
  • 66. Erlangung der Doktorwürde (School of Philosophy of Leipzig University, 1886). [53] These concerts were inaugurated in 1673; undoubtedly for one of these, to which the name Abendmusik, evening music, was applied, the Chaconnes and the Passacaglia were written. [54] Centone (It.): a composition made up of excerpts from other works. [55] Peters Edition, edited by Griepenkerl and Roitzsch, vol. iv, No. 5. [56] Peters Edition, vol. iv, No. 9. [57] P. viii, 11. [58] P. iii, 9. [59] Bruhns was born at Schwabstädt (Schleswig) in 1666, and died at Husum in 1697; he was organist there, and had formerly occupied for some time a similar position in Copenhagen. [60] It will be interesting to compare this piece with the prelude in F sharp minor by Buxtehude, particularly with this excerpt from it (ed. Spitta, xii, p. 68):
  • 67. [ [MusicXML] [61] For instance, in the Chaconne (iii, p. 15, from the 8th measure), which we have already analyzed:
  • 68. [ [MusicXML] [62] P. ix, 6. In this edition, this work bears the title of concerto, undoubtedly because of its form in several movements; at least, it was so designated in Griepenkerl's collection. A manuscript which has come down from the organist Westphal, in Hamburg, gives it this title: "Fantasia, clamat in G♮, di J.S. Bach." [63] P. iv, 11. [64] P. iii, 10. Bach-Gesellschaft-Ausgabe (W. Rust), year XV, p. 100. [65] For example, this theme: [ [MusicXML] [66] Hanslick: Vom Musikalisch-Schönen.
  • 69. [67] Schopenhauer: Lichtstrahlen aus seinen Werken (J. Frauenstädt, Leipzig, 1874, p. 128). [68] P. iv, 4; B.-G. xv. [69] P. iii, 7; B.-G. xv, p. 276. This work also bears the title of Toccata. It presents the peculiarity of being divided into four movements, whence, possibly, this designation, concertato, which accompanies it in one of the MSS. It is essentially an imitation of Buxtehude's compositions in several movements. [70] P. iv, 3; B.-G. xv, p. 88. [71] "It is not necessary," says Mattheson, "to indicate the degree of rapidity of an alla breve; these words suffice to animate the most sluggish brain, to make supple the heaviest of hands. For example, it is like 'clucking' to a horse."—Grosse Generalbass- Schule, Hamburg, 1732. [72] P. iii, 5; B.-G. xv, p. 112. [73] P. viii, 5. These works are part of the collection of G. Pölchau, a well-known musician of Hamburg in the last century. [74] Born in 1663, Duke Wilhelm Ernst reigned from 1683. Early becoming a widower, and left without children, he adopted a somewhat retired mode of life, as we may judge. At the palace, "Wilhelmsburg," everyone had to retire at nine o'clock in summer and eight in winter. He evinced a marked taste for theological studies and discussions; in 1710 he brought together in a synod one hundred pastors, and he built or repaired a number of churches and seminaries. He was also interested in numismatics. This austerity was in some degree tempered by concerts, whose programs were performed (J.O. Köhler tells us, Historische Münzbelustigung, Nuremberg, 1730) by sixteen picked musicians, dressed in Hungarian costume (Bach en tzigane!). Further, the duke built a theatre in 1696; the patronage accorded to the troupe of Gabriel Möller, "Hofcomödiant" (court comedian), was not of long duration; it had already ceased in 1709.
  • 70. [75] Prince Johann Ernst was of a weak constitution; he died in 1715, at the age of nineteen years, and the only way he could make his insomnia bearable was to keep with him in his room during entire nights Walther, his music teacher, who would play for him his favorite pieces. [76] Johann Gottfried Walther was born in 1684, and from 1707 held the position of town organist in Weimar. Not only was he a good musician, but he was also a theoretician of merit; while he learned from his friend Bach the principles of the old school of Sweelinck, the traditions of which had descended through the teachings of Reinken and Buxtehude (see J.G. Walther als Theoretiker.—Study by Gehrmann in the Vierteljahrschrift für Musikwissenschaft, 1891), Bach, on the other hand, was able to obtain other advantages from this interchange; Walther was remarkably well-schooled in harmony, and from his thorough knowledge, of long standing, of Italian chamber music, he undoubtedly was not indirectly connected with these new studies of Bach's. [77] I am not speaking of virtuosos. We know with what astonishment Corelli, the great Italian violinist, listened to the playing of Nikolaus Strungk of Celle: "I call myself arcangelo," said he to the latter, "but you deserve the title of arcidiavolo." And we must not forget the old musician, J. Franz Biber, who was born in 1638 and died at Salzburg in 1698, and who exerted a perceptible influence upon the creation of the violin sonata. But what the Germans sought was not, let me repeat, within the domain of that expressive instrument; they could not be content with simple melody, they must have complete harmony. And so we learn that Bruhns (the remarkable organ-pupil of Buxtehude, and an exceptionally talented violinist) would seat himself before the pedal of an organ, violin in hand, and would play in four parts —the bass with his feet, the other parts upon his violin. [78] P. viii, 1-4. Vivaldi was born toward the end of the seventeenth century; in 1713 he was appointed maestro di cappella at l'Ospitale della Pietà, at Venice; later he was for some
  • 71. time in the service of the Landgrave of Hesse-Darmstadt. He died in 1743. [79] The title of this last transcription gives us a clue to its date; it reads as follows: "Concerto dell'illustrissimo Principe Giovanni Ernesto Duca di Sassonia appropriato all'Organo a 2 clav. e pedale da Giovanni Sebastiano Bach." So it must have been written before 1715, the date of the Duke's death. Bach was not the only one to make these transcriptions; Mattheson tells us (Das beschützte Orchester): "Compositions of this order (concerti grossi, sinfonie in specie, overtures) may also be played upon a polyphonic instrument, for instance upon the organ or harpsichord; a few years ago the celebrated S. de Graue, the blind organist of the new Dunes Church in Amsterdam, played from memory and with remarkable clearness in my presence, upon the excellent organ in his church, the latest Italian sonatas and concertos in three and four parts." [80] P. iii, 8. B.-G. xv, p. 253. [81] This work, perhaps, dates from the journey which Bach made to Cassel in 1714 to examine a recently restored organ. At least the pedal passage in the prelude reminds us of that pedal solo executed during this tour before the Hereditary Prince of Hesse with such virtuosity that the latter drew from his finger a valuable ring and presented it to Bach. "One might have believed," says Adlung (Anleitung an der Musikgelahrtheit), "that his feet were winged, with such agility did they move over the keys which caused the powerful basses to resound. If the dexterity of his feet drew from the Prince so rich a present, what should he have given him in recognition of the genius of his hands?" [82] It will be interesting to compare one of these themes with the following from the counterpoint of a fugue in A major by Albinoni:
  • 72. [ [MusicXML] especially if we remember this first transformation which it underwent at the hands of Bach in a fugue for harpsichord: [ [MusicXML] [83] Here are noticeable the pauses Bach contrives to introduce for one of the hands, that it might effect the changes in registration necessary to play the fugue coll'organo pleno. [84] P. iv, 8. [85] Corelli was born in 1653, and died in 1713. The theme mentioned is found in Joachim's edition of Corelli's works (Denkmäler der Tonkunst, vol. iii. Bergedorf, near Hamburg, 1871). It is the theme of a fugue, the second part of a "church sonata," opus 3; the fugue is marked vivace, and is but thirty- nine measures in length. [86] The manuscript of this fugue, coming down from Andreas Bach, bears the following qualification: "Thema Legrenzianum elaboratum cum subjecto pedaliter." [87] P. iv, 10. [88] Sweelinck, who was born at Deventer about 1560, studied with Zarlino at Venice, and upon his return home in 1580 occupied (until his death in 1620) the position of organist to the old Protestant Church in Amsterdam (see Max Seiffert: J. Peter Sweelinck und seine directen deutschen Schüler).
  • 73. [89] It is the third number in the volume entitled, Drei Phantasien, drei Toccaten und vier Variationen, nach einem Manuscript des grauen Klosters zu Berlin aus der Orgeltabulatur übersetzt und herausgegeben von Rob. Eitner (Berlin, 1870). [90] Livre d'orgue (1701). [91] Let it be remembered that Bach, imitating these same Sonatas in composing the Lamento of the "Capriccio upon the departure of his most beloved brother" (1704), employs this motif as a basso quasi ostinato, and that in the Easter Cantata written in the same year the viola sorrowfully gives expression to the same theme. [92] His compatriot, John Bull, who died in Antwerp in 1628, had already written a series of variations upon this subject. (See "A General History of Music," by Charles Burney. London, 1789, p. 115.) [93] This is the term which Bach employs in the preface to his Inventionen und Sinfonien compiled in 1723, that his pupils might, through their study, acquire un jeu cantable. [94] P. viii, 6. [95] Commer. Musica Sacra (Vol. I, No. 123, p. 137). [96] P. i, 2. B.-G. xv, p. 289. [M. Pirro writes me: "You may state that the theme of the Passacaglia was the composition of the French organist André Raison." To which M. Widor adds: "André Raison, organist of St.-Étienne du Mont in Paris at the time of Louis XIV, left a volume of organ works, now very rare, which I have presented to the library of the Conservatoire. Raison's collection is interesting, in that it gives indications of the registration of his time; the chorale is usually found in the pedal, treated as the tenor, the real bass being played by the left hand. The melody of the chorale is performed upon a reed stop in the pedal, while upon the manuals only mixtures are drawn." Tr.] [97] P. ii, 5. B.-G. xv, p. 104.
  • 74. [98] P. iii, 6. B.-G. xv, p. 129, and P. iv, 12 (a 5 voci). Accompanying the latter Fantasia is a fugue of which, unfortunately, only the first twenty-seven measures are extant. [99] P. iii, 2. B.-G. xv, p. 155. [100] P. ii, 6. B.-G. xv, p. 218. [101] P. iii, 3. B.-G. xv, p. 136. [At the time of Bach it was a frequent usage to omit an accidental from the signature; in the above case the omission of the only flat undoubtedly suggested the appellation frequently given "in modo dorico," although otherwise the composition bears hardly a trace of the Dorian mode. Tr.] [102] Geschichte der evangelisch-lutherischen St. Agnuskirche in Köthen. Herausgegeben von C.F. Hartmann, Köthen, in der Commission der Huschen Buchhandlung (1802). The organ is described on pages 19 and 20. [103] [The pedal, even of modern organs, extends upwards only to f'. Since the middle of the last decade, the house of Cavaillé- Coll in Paris, has applied to the larger instruments constructed by it the compass of C to g'. This range was recommended by the translator and adopted for an organ now in process of construction in Boston; it is also a feature of the large organ for Yale University, recently contracted for.] [104] P. iii, 2. B.-G. xv, p. 155. [105] The beginning, at least; while the conclusion is characterized by repetitions, this part of the work is not its least imposing portion. [106] P. ii, 3. B.-G. xv, p. 120. [107] This cantata, written for soloists, was first performed December 29, 1715. B.-G. xxx, 2. [108] For example, in the fugue in G minor (P. iv, 7).
  • 75. [109] P. i, 1. B.-G. xv. [110] The first part of the sonata in D minor undoubtedly dates from the year 1722; the adagio and vivace of the sonata in E minor are transcribed from the cantata Die Himmel erzählen (1723), B.-G. xviii. The last movement of this sonata was originally intended to serve as an interlude between the prelude and the fugue in G major (P. ii, 2. B.-G. xv, p. 169. The theme of the fugue is, in major, that of the first chorus in the cantata Ich hatte viel Bekümmerniss, performed in 1714), composed, according to the water-mark of the autograph, in 1724 or 1725. [111] See S. Bagge: Die geschichtliche Entwickelung der Sonate. [112] P. ii, 4. B.-G. xv, p. 177. [113] Grosse General-Bass-Schule, oder Exemplarische Organistenprobe (Hamburg, 1731), p. 34. "The subject of this fugue was produced by a facile pen, and, in 1725, presented to a candidate for the position of organist." [114] Charles Gounod: Le Don Juan de Mozart, p. 5. [115] Clavierübung.—Dritter Theil der Clavierübung bestehend in verschiedenen Vorspielen über den Catechismus und andere Gesänge vor die Orgel: denen Liebhabern und besonders denen Kennern von dergleichen Arbeit, zur Gemüths-Ergötzung verfertiget von J.S. Bach, königl. Pohlnischen, und Churfürstlich Sächsischen Hof-Compositeur, Capellmeister, und Directore Chori Musici in Leipzig. In Verlegung des Authoris. [116] P. iii, 1. B.-G. iii, pp. 173 and 254. [117] It is worthy of note that the fugue, a last reminiscence of Buxtehude, is in three movements of different rhythms. [118] P. ii, 9. B.-G. xv, p. 236. [119] P. ii, 10. B.-G. xv, p. 199. [120] Schopenhauer. Lichtstrahlen aus seinen Werken. J. Frauenstädt, Leipzig, 1874.
  • 76. [121] P. ii, 1. [122] P. ii, 6. B.-G. xv, p. 218. Here are noticeable reminiscences from the Recordare in the Dies Irae of Legrenzi, for eight-part chorus, three violes and organ. [123] P. ii, 8. B.-G. xv. [124] P. ii, 7. B.-G. xv, p. 228. [125] These variations are contained in the fifth volume of the Peters edition (Part ii, 1 and 2). [126] P. vi, 15. [127] This also must have been written for the clavecin; the right hand passing over the left in order to strike the bass note e, held meanwhile by the pedal, clearly indicates the intention of thereby prolonging the sound. [128] Published by Ritter: Geschichte des Orgelspiels, part ii, p. 181. [129] Musica Sacra, vol. i, p. 5. [130] Orgelbüchlein Worinne einem anfahenden Organisten Anleitung gegeben wird, auff allerhand Arth einen Choral durchzuführen, anbey auch sich im Pedal Studio zu habilitiren, indem in solchen darinne befindlichen Choralen das Pedal gantz obligat tractiret wird. Dem Höchsten Gott allein zu ehren, Dem Nechsten, draus sich zu belehren. Autore Joanne Sebast. Bach p.t. Capellae Magistro S.P.R. Anhaltini-Cotheniensis. The chorales of the Orgelbüchlein are published in the fifth volume of the Peters, and in the twenty-fifth year of the Bach- Gesellschaft edition. W. Rust, in the latter volume, has preserved the order adopted by Bach in the succession of these chorales, which is according to the church year. [131] Durch Adam's Fall ist ganz verderbt. Buxtehude employed fifths to symbolize this descent.
  • 77. [132] Organists often played the sortie (postlude) in the form of a chaconne, with full organ (see Mattheson: "Der vollkommene Capellmeister," and Becker, "Rathgeber für Organisten"). The prelude to the chorale "Heut' triumphiret Gottes Sohn" is conceived in the same manner. [133] In the collection Lustgarten neuer teutscher Gesänge, Balletti, Galliarden und Intraden mit 4, 5, 6, 7, und 8 Stimmen. 1601, Nürnberg, bei Kaufmann. [134] O Haupt voll Blut und Wunden.—Cf. chorale in St. Matthew Passion. [135] Compare that chorale with this fragment of a chorale by Böhm, Vater unser im Himmelreich: [ [MusicXML]
  • 78. [136] P. vi, and vii. B.-G. xxv, vol. ii, 3rd part. [137] For example, upon the melodies "Allein Gott in der Höh' sei Ehr'" (several versions), "Nun komm, der Heiden Heiland" and "Herr Jesus Christ, dich zu uns wend." [138] Nun komm, der Heiden Heiland. [139] Various arrangements by Bach of this chorale are in existence; we would cite in particular the one which he made with double pedal, upon the same harmonic bass as the one already referred to. It was probably composed for the journey to Hamburg (in 1720), when Bach drew from old Reinken the avowal of an admiration which the latter was not wont to lavish, for his improvisations upon this theme. Reinken had also composed a prelude upon it. It is interesting to compare the profusion of ornaments by which he renders the melody almost unrecognizable, with the elegant design in which Bach clothes it. Reinken thus distorts the beginning: [ [MusicXML] With a Toccata and another Choralvorspiel, this arrangement is all that remains to us of Reinken's works. [140] Schumann said of this prelude, by which he himself was influenced in certain compositions (Cologne): "Thou didst play, Felix Meritis (Mendelssohn), a prelude upon one of those figured chorales: 'Schmücke dich, o liebe Seele,' was the text; the melody seemed interlaced with garlands of gold, and the work breathed forth such happiness that you inspired in me this avowal: 'Were life deprived of all trust, of all faith, this simple chorale would
  • 79. restore all to me.' I fell into a revery; then, almost unconsciously, I found myself in the cemetery, and I felt poignant grief at not being able to cover with flowers the grave of the great Bach."— Letters, vol. i. Mendelssohn had played this chorale at a concert given, in St. Thomas' Church, to further the erection of a monument to the memory of J.S. Bach. The melody of this chorale is found in choral-books since 1649. [141] Einige kanonische Veränderungen über das Weihnachtslied: Vom Himmel hoch da komm' ich her. [142] These variations were published separately. Bach had them engraved about 1746 by Balthasar Schmidt in Nuremberg, in order to present them as the work for admission which the "Society for Musical Sciences" founded by Mizler in 1738 imposed upon each of its candidates. Bach was elected in 1747. He must have composed them, however, some years previously. The MS. and the engraved edition present numerous differences of editing. [143] P. vi, and vii. B.-G. iii. [144] Cart. Un maître deux fois centenaire. [145] P. vii, 58. B.-G. xxv. [146] Forkel. [147] At the commencement of his compositions he wrote the initials J.J. (Jesu Juva) or S.D.G. (Soli Deo Gloria). [148] Ueber J.S. Bach's Leben, Kunst und Kunstwerke. Leipzig, 1802. [149] Dieupart, born in France during the last third of the seventeenth century, was a remarkable violinist and clavecinist. He went to England early in the eighteenth century, and, associated with Clayton, introduced Italian opera at Drury Lane. After disasters similar to those which later befell Händel, he
  • 80. renounced the theatre and busied himself no longer with instrumental music. He died in 1740. Of his compositions are extant: Six suites for the clavecin, divided into Overtures, Allemandes, Courantes, Sarabandes, Gavottes, Minuets, Rondos, and Gigues, composed and arranged for concert performance by a Violin and a Flute, with a Bass Viol and an Archilute. (See Grove's "Dictionary of Music and Musicians.") The prelude of Bach's first English Suite was inspired by a passage in the A major suite of Dieupart. [150] Der Vollkommene Kapellmeister, Hamburg, 1739, §69, p. 467. [151] Mattheson says, à propos of this stop: "The French have given to the Nachsatz (thus named on account of its high pitch, in contrast to the Untersatz of thirty-two feet) of the Netherlanders, the designation Nasard or Nasarde, 'a vulgar expression, of which use is made in comedy or burlesque,' says Boyer's dictionary." [152] This register, composed of two ranks of pipes of tin or of composition, is a compound stop. The longer pipe gives the fifth of the octave, the shorter the third of the fifteenth; there is thus the interval of a major sixth between the two ranks. [153] In Das neu eröffnete Orchester (1717). Mattheson was born in Hamburg in 1681; aside from his critical works on music he was an organist of ability; he knew Buxtehude, becoming acquainted with him in 1703. He even expected to succeed him, but renounced his aspirations in this direction upon learning that in accepting the position of the father he would be obliged to marry the daughter, Anna Margaretha, born in 1669, and therefore much too old for him; this was one of the conditions of the place, which also deterred Händel from presenting himself as a candidate. [154] Certain organists abused this powerful combination; Adlung says, "There are many who, in playing the chorale or music in general, know only the noise of the plein-jeu. One may be content to continually wear the same clothes, but an organist
  • 81. who produces the same sounds every day will render himself insupportable by his monotony. In the chorale, in the last verse, one may play a little louder, to remind the minister to prepare for the resumption of his duties; especially in towns where it is no longer customary (as is still the honored usage in some villages) to rap with a bâton for this purpose, as though one by force would arouse him from slumber." Anleitung zur musikalischen Gelahrtheit, 1758. [155] Premier livre d'orgue, 1665. [156] Livre d'orgue, 1688. [157] "Reed-stops are often Fool-stops; but if they be clear and bright, they are refreshing to heart and soul." [158] Sechs Choräle von verschiedener Art auf einer Orgel mit 2 Clavieren und Pedal vorzuspielen, verfertiget von Johann Sebastian Bach, königl. Pohln. und Churf. Sächs. Hoff- Compositeur, Capellm. und Direct. Chor. Mus. Lips. In Verlegung Joh. Georg Schüblers zu Zella am Thüringer Wald. These chorales are taken from the cantatas composed at Leipzig. They are, however, only transcriptions; it is interesting in registrating them to know their orchestration. In the chorale Ach bleib' bei uns! (B.-G. xxv, P. vi, 2) the melody is sung by the soprano, accompanied by a violoncello piccolo, the continuo sustaining the harmony. In Meine Seele erhebt den Herrn (Magnificat, P. vii, 42), the continuo is played by the pedal, the parts entrusted to the left hand corresponding to the duet between tenor and alto, while the chorale (dextra forte) is executed in the score by the first and second oboes and the trumpet. [159] Musica mechanica organoedi (Langensalza, 1762). [160] Der vollkommene Kapellmeister, part ii, chap. xxv. [161] It appears that this carillon was not constructed; it is possible, however, that Bach had it in mind when writing the chorale. Moreover, it was to be found in other organs.
  • 82. [162] Livre d'orgue contenant une messe et quatre hymnes pour les principales festes de l'année. Par Nicolas de Grigny, organiste de l'église-cathédrale de Reims. À Paris, chez Christophe Ballard, seul imprimeur du Roy pour la Musique. Rue Saint-Jean de Beauvais, au Mont-Parnasse. 1701. Avec Privilège de Sa Majesté. [163] [The cornet here referred to is obviously a mixture, not the reed of the same name already mentioned.—Tr.]
  • 83. [164] This organ was the only one with three manuals which Bach could have had in mind while he was in Weimar with Walther; it is natural that in his compositions he should be preoccupied with an organ whose restoration he had planned, and undoubtedly supervised—Weimar being not far from Mühlhausen—and which in all probability he looked forward to inaugurating. This remark, moreover, may apply to the composition of the chorale In dir ist Freude, although here Bach had been disappointed. [165] That is, for playing the basso continuo of the orchestra. [166] [En montre signifies literally "on show"; that is, in front. The French designation for a diapason, Montre, is derived from the custom of placing the pipes of that register in an exposed position.—Tr.] [167] [The filling-out of the figured bass by the organ, made necessary in music with orchestra by the paucity of the instrumental numbers, was referred to as the "music."—Tr.] [168] [The word swell I have used in the foregoing merely to designate the third manual; and it by no means implies that the pipes belonging to that keyboard were enclosed in a swell-box. Although this invention was applied to an English organ for the first time in 1712 (St. Magnus Church, London Bridge), its adoption in Germany has become general only within comparatively recent years, and then only in newly- built instruments.—Tr.] [169] J. Th. Mosewius: J.S. Bach in seinen Kirchencantaten und Choralgesängen (Berlin, Trautwein, 1845), p. 25. [170] This is what was done by Robert Franz. See Offener Brief an Eduard Hanslick (Leipzig, 1873). [171] Deutliche Anweisung zum Generalbass (Halberstadt, 1772), p. 137.
  • 84. [172] Anleitung zur practischen Musik (Leipzig, 1782). [173] B.-G. iv. [The first and last numbers, respectively, of Part I. In the first the chorale is sung by a special chorus of sopranos, usually boys, while the two mixed choruses and the two orchestras are treated contrapuntally. In the other instance the two choruses are united in one, as are also the two orchestras, and the chorale is sung by all the sopranos, the counterpoint being assigned to the remaining three vocal parts, supported by the orchestra.—Tr.] [174] B.-G. v. [175] B.-G. xviii, 10. [176] The organo obbligato was sometimes written with more delicate intentions; for example, in the alto aria with accompaniment of an oboe da caccia, from the cantata Wer weiss, wie nahe mir mein Ende? (B.-G. v.). [177] We should add here, that the organs were not of the same pitch as the other instruments, for they were tuned to chorus-pitch, a whole tone lower than the normal diapason. The organ at Weimar, on the contrary, was a minor third higher. [178] Oberwerk means literally the higher manual; in two- manual organs the stronger was, at that time, found above the other. The name Rückpositif came from the custom of placing the pipes behind the back (Rücken) of the organist. Finally, the swell bore the name Brustwerk, the pipes being placed facing the breast (Brust) of the player. In a three- manual organ the great keyboard was situated between the swell, which was above, and the choir, which was below it. [179] This instrument was constructed in 1701, by J.F. Wender, an organ-builder of Mühlhausen. [The specification as compiled from the existing stop-handles by Mr. C.F.A.
  • 85. Williams ("Bach": J.M. Dent & Co.: London), differs slightly from the above, which is given by Spitta.—Tr.] [180] A sort of Glockenspiel, which produced l'accord parfait [undoubtedly the major triad]. [181] This was a reed stop. [182] Historische Nachrichten von der berühmten Residenzstadt Weimar. Weimar, 1737, p. 175, 176. [183] [The Principal here referred to is undoubtedly the eight- foot Diapason.—Tr.] [184] Undoubtedly larigot. [185] Vogel, Leipziger Chronicke. Vol. iii, chap. vi, p. 110. [186] In combination with the Quintatön of eight feet, says Adlung, the Geigenregal sounds almost like a stringed instrument. [187] Cromorne. Also called lituus (clarion) by Praetorius (Syntagma musicum), Tome ii, chap. xv, p. 40. Adlung suggests this simple derivation: cor and morne (sad, reserved). [188] Ueber J.S. Bach's Leben, Kunst und Kunstwerke. [189] Die wahren Grundsätze zum Gebrauch der Harmonie (Berlin, 1773) p. 53. See also Mizler (Necrolog, p. 171) and Forkel (p. 22). [190] Clavierbüchlein, vor Wilhelm Friedemann Bach angefangen in Cöthen den 22. Januar, anno 1720. [191] See A. Méreaux: Les Clavecinistes de 1637 à 1790. Tableau synoptique et comparatif de tous les agréments avec leur signes et leur effet. Heugel, Paris.
  • 86. [192] L. Diémer: Les Clavecinistes français du XVIIIe siècle (Durand and Schönewerk). [193] This work contains, with numerous examples, a study of ornamentation, from G. Diruta to J.S. Bach in the first part, from Ph. E. Bach to our own period in the second. (London: Novello, Ewer & Co.) [194] P. vi, 9. B.-G. [195] B.-G. xiii, p. xvi. We again encounter this grouping in the flute part of the et in unum Deum of the B minor Mass. [196] The autograph was contained in the collection of Ph. Spitta. [197] Toccata II (libro i). [198] Toccata 6a (adagio), and Toccata 3a of the Apparatus musico-organisticus. [199] Veit Bach was born in Gotha during the second half of the sixteenth century; he is considered the progenitor of the Bach family. He was the first representative of the race of musicians who furnished "cantors" and organists to the greater number of the central German cities. At Erfurt, for instance, the direction of the "council music" was in their hands from 1625 until 1735, and even after their disappearance the town musicians were still referred to as "the Bachs." [200] This instrument was constructed in 1701 by Wender, an organ-builder in Mühlhausen. Wender had a certain local reputation, but was unskilful and not very conscientious. [201] Besides a salary of 85 thalers, he had various perquisites "in kind."
  • 87. [202] One of his cantatas, Gott ist mein König, was engraved in separate parts by Brückner of Mühlhausen. [203] See Philipp Spitta: Johann Sebastian Bach, vol. i, p. 354. [204] [Subsequent to the writing of the above, and during the progress of general disinterment incidental to the devotion to other uses of the land occupied by the cemetery, Bach's remains were found and identified by most scientific methods. In August, 1900, took place the official ceremony of reinterment in a stone sarcophagus, contained in a crypt constructed for the purpose at the foot of the chancel steps of the new Johanniskirche (St. John's Church). Upon this occasion the University Gesangverein zu St. Pauli sang. September 2d of the same year, at the close of the weekly "Abend-Motette" (the program on this occasion having been devoted entirely to works of Bach), the solo-quartet of the church sang in the crypt the chorale from the St. Matthew Passion Wenn ich einmal soll scheiden, in the presence of a few other reverent "friends of Bach's music." The following morning the lid of the sarcophagus was permanently closed and sealed. By its side, enclosed in a similar receptacle, lie the ashes of Gellert, the poet.—Tr.] [205] A small-sized violin, tuned a fourth higher.
  • 88. Welcome to our website – the perfect destination for book lovers and knowledge seekers. We believe that every book holds a new world, offering opportunities for learning, discovery, and personal growth. That’s why we are dedicated to bringing you a diverse collection of books, ranging from classic literature and specialized publications to self-development guides and children's books. More than just a book-buying platform, we strive to be a bridge connecting you with timeless cultural and intellectual values. With an elegant, user-friendly interface and a smart search system, you can quickly find the books that best suit your interests. Additionally, our special promotions and home delivery services help you save time and fully enjoy the joy of reading. Join us on a journey of knowledge exploration, passion nurturing, and personal growth every day! ebookbell.com