Book Image

Advanced Express Web Application Development

By : Andrew Keig
Book Image

Advanced Express Web Application Development

By: Andrew Keig

Overview of this book

Building an Express application that is reliable, robust, maintainable, testable, and can scale beyond a single server requires a bit of extra thought and effort. Express applications that need to survive in a production environment will need to reach out to the Node ecosystem and beyond, for support.You will start by laying the foundations of your software development journey, as you drive-out features under test. You will move on quickly to expand on your existing knowledge, learning how to create a web API and a consuming client. You will then introduce a real-time element in your application.Following on from this, you will begin a process of incrementally improving your application as you tackle security, introduce SSL support, and how to handle security vulnerabilities. Next, the book will take you through the process of scaling and then decoupling your application. Finally, you will take a look at various ways you can improve your application's performance and reliability.
Table of Contents (14 chapters)
Advanced Express Web Application Development
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

SSL termination


SSL termination is the term given to the decrypting of a TLS-encrypted (HTTPS) stream into plain text (HTTP). The TLS module in Node core is not as fast as some other technologies used for terminating SSL and is generally not used in production. Our application runs entirely over HTTPS, so TLS performance is vital.

Fortunately, we have options for SSL; we will use stud, a network proxy that terminates TLS/SSL connections and forwards the unencrypted traffic to a web server. Stud is built on libev and is non-blocking; it is designed to handle tens of thousands of connections efficiently on multicore machines. Let's clone the stud GitHub repository:

git clone http://github.com/bumptech/stud.git

Now compile stud from source:

cd stud
make
sudo make install

When the installation is complete, we can generate a stud file. Stud comes with a default configuration that we can request via:

cd vision-web
stud --default-config > stud.conf

Our stud file, ./vision-web/stud.conf, requires...