First
of all we focus on some point given below:
- What
is Nginx ?
- Releasing
date?
- Deeply
Discussion.
- Feature.
- Nginx
vs apache.
lets Discus :
What is nginx and
its Releasing date?
Nginx
is a high performative open source HTTP web server.its free to use for
everyone.its written by Igor Sysoev ,a
Russian software engineer.Firstly launched in 2004 (same name company was
founded in 2011 for providing support for this server).nginx has focused on
high performance, high concurrency and low memory usage.so,its take long time
to develop over 10 year.over 10 years ago, no one expected that the
project he created for the purpose of accelerating a large Apache‑based service
would grow to have the influence it has now. Currently nginx is the second most popular open source
web server on the Internet.its functionality feature like load balancing,
caching, access and bandwidth control, and the ability to integrate efficiently
with a variety of applications
nginx was created in response to the C10k Challenge of
handling at least 10,000 simultaneous client connections on a single server.
NGINX uses an asynchronous, event-driven architecture to handle these massive
amounts of connections. This architecture makes handling high and fluctuating
loads much more predictable in terms of RAM usage, CPU usage, and latency.Nginx
uses an asynchronous event-driven approach
to handling requests. Nginx's modular event-driven architecture can
provide more predictable performance under high loads.
These
days the Internet is so widespread and ubiquitous it's hard to imagine it
wasn't exactly there, as we know it, a decade ago. It has greatly evolved, from
simple HTML producing clickable text, based on NCSA and then on Apache web
servers, to an always-on communication medium used by more than 2 billion users
worldwide. With the proliferation of permanently connected PCs, mobile devices
and recently tablets, the Internet landscape is rapidly changing and entire economies
have become digitally wired. Online services have become much more elaborate
with a clear bias towards instantly available live information and
entertainment. Security aspects of running online business have also
significantly changed. Accordingly, websites are now much more complex than
before, and generally require a lot more engineering efforts to be robust and
scalable.
One
of the biggest challenges for a website architect has always been concurrency.
Since the beginning of web services, the level of concurrency has been
continuously growing. It's not uncommon for a popular website to serve hundreds
of thousands and even millions of simultaneous users. A decade ago, the major
cause of concurrency was slow clients—users with ADSL or dial-up connections.
Nowadays, concurrency is caused by a combination of mobile clients and newer
application architectures which are typically based on maintaining a persistent
connection that allows the client to be updated with news, tweets, friend
feeds, and so on. Another important factor contributing to increased
concurrency is the changed behavior of modern browsers, which open four to six
simultaneous connections to a website to improve page load speed.
feature :
nginx is very well suited for this, as it provides the key features necessary to conveniently offload concurrency, latency processing, SSL (secure sockets layer), static content, compression and caching, connections and requests throttling, and even HTTP media streaming from the application layer to a much more efficient edge web server layer. It also allows integrating directly with memcached/Redis or other "NoSQL" solutions, to boost performance when serving a large number of concurrent users.
Nginx can be deployed to serve dynamic HTTP content on the network using FASTCGI, SCGI handlers for scripts, WSGI application servers or Phusion Passenger modules, and it can serve as a software load balancer .
With
recent flavors of development kits and programming languages gaining wide use,
more and more companies are changing their application development and
deployment habits. nginx has become one of the most important components of
these changing paradigms, and it has already helped many companies start and develop
their web services quickly and within their budgets.
The
first lines of nginx were written in 2002. In 2004 it was released to the
public under the two-clause BSD license. The number of nginx users has been
growing ever since, contributing ideas, and submitting bug reports, suggestions
and observations that have been immensely helpful and beneficial for the entire
community.
·
Ability
to handle more than 10,000 simultaneous connections with a low memory
footprint (~2.5 MB per 10k inactive HTTP keep-alive connections)
·
Handling
of static files, index files and auto-indexing
·
Reverse
proxy with caching
·
Load
balancing with in-band health checks
·
TLS/SSL with SNI and OCSP
stapling support, via OpenSSL.
·
FastCGI, SCGI, uWSGI support
with caching
·
Name-
and IP address-based virtual servers
·
IPv6-compatible
·
WebSockets and HTTP/1.1
Upgrade (101 Switching Protocols)
Traditional process- or thread-based models of handling
concurrent connections involve handling each connection with a separate process
or thread, and blocking on network or input/output operations. Depending on the
application, it can be very inefficient in terms of memory and CPU consumption.
Modern, distributed web applications can use a mix of diverse application components, and it’s not uncommon for them to combine a number of different technologies and platforms. The common requirement is that each component be lightweight and scalable, suitable for deploying in containers on a resource‑constrained multitenant server.
To be continued....