Open source web servers

NGINX

Nginx  is a web server which can also be used as a reverse proxy, load balancer and HTTP cache.

Nginx is free and open source software, released under the terms of a BSD-like license. A large fraction of web servers use NGINX, often as a load balancer.

NGINX relies on an asynchronous event-driven architecture to help power its goal of handling massive concurrent sessions. It has become a very popular web server among administrators due to its light resource utilization and its ability to scale easily.

Apache HTTP Server

The Apache HTTP Server—often referred to as httpd, or simply Apache—was first launched in 1995, and celebrated its 20th birthday in February 2015. Apache powers 52% of all websites globally, and is by far the most popular web server.

While Apache httpd is most often seen running on Linux, you can also deploy Apache on OS X and Windows. Apache is, unsurprisingly, licensed under the Apache License version 2. The web server itself uses a modular architecture, in which extra modules can be loaded to extend its features. For example, loading the mod_proxy will allow for a proxy/gateway on your server, and mod_proxy_balancer will enable load balancing for all supported protocols. As of version 2.4, Apache also supports HTTP/2 through a new module, mod_http2.

Apache Tomcat

Apache Tomcat is an open source Java servlet container that functions as a web server. A Java servlet is a Java program that extends the capabilities of a server. Although servlets can respond to any types of requests, they most commonly implement applications hosted on Web servers. Such web servlets are the Java counterpart to other dynamic web content technologies such as PHP and ASP.NET. Tomcat’s code base was donated by Sun Microsystems to the Apache Software Foundation in 1999, and became a top-level Apache project in 2005. It currently powers just under 1% of all websites.

Apache Tomcat, released under the Apache License version 2, is typically used to run Java applications. It can, however, be extended with Coyote, to also perform the role of a normal web server that serves local files as HTTP documents. More information can be found on the project website.

Apache Tomcat is often listed among other open source Java application servers. Some examples are JBoss, Wildfly, and Glassfish.

Node.js

Node.js is a server-side JavaScript environment for network applications such as web servers. With a smaller market position, Node.js powers 0.2% of all websites. Node.js was originally written in 2009 by Ryan Dahl. The Node.js project, governed by the Node.js Foundation, is facilitated by the Linux Foundation’s Collaborative Projects program.

The difference between Node.js and other popular web servers is that it is primarily a cross-platform runtime environment to build network applications with. Node.js applies an event-driven architecture capable of asynchronous I/O. These design choices optimize throughput and scalability in web applications allowing to run real-time communication and browser games. Node.js also highlights the difference in web development stacks, where Node.js is clearly part of the HTML, CSS, and JavaScript stack, as opposed to Apache or NGINX which are a part of many different software stacks.

Lighttpd

Lighttpd—pronounced “lightly”—saw its initial release in March 2003. It currently powers approximately 0.1% of all websites and is distributed under a BSD license.

Lighttpd distinguishes itself with its low memory footprint, small CPU load, and speed optimizations. It uses an event-driven architecture, is optimized for a large number of parallel connections, and supports FastCGI, SCGI, Auth, Output-compression, URL-rewriting and many more features. Lighttpd is a popular web server for the Catalyst and Ruby on Rails web frameworks. Find more information on the project homepage.

If you are looking to try one of the popular web servers, I can highly recommend downloading a LAMP (Linux, Apache, MySQL, PHP) or LEMP (Linux, NGINX, MySQL, PHP) stack. There are plenty of such stacks available, providing different flavors in for example Apache and PHP versions. They are usually provided as one-click installers, or available in your package/software manager on Linux.

Mean-Stac

An Introduction to the MEAN Stack

The term MEAN stack refers to a collection of JavaScript based technologies used to develop web applications. MEAN is an acronym for MongoDB, ExpressJS, AngularJSand Node.js. From client to server to database, MEAN is full stack JavaScript. This article explores the basics of the MEAN stack and shows how to create a simple bucket list application.

Introduction

Node.js is a server side JavaScript execution environment. It’s a platform built on Google Chrome’s V8 JavaScript runtime. It helps in building highly scalable and concurrent applications rapidly.

Express is lightweight framework used to build web applications in Node. It provides a number of robust features for building single and multi page web application. Express is inspired by the popular Ruby framework, Sinatra.

 MongoDB is a schemaless NoSQL database system. MongoDB saves data in binary JSON format which makes it easier to pass data between client and server.

AngularJS is a JavaScript framework developed by Google. It provides some awesome features like the two-way data binding. It’s a complete solution for rapid and awesome front end development.

What is React Native ?

React

Build native mobile apps using JavaScript and React

React Native lets you build mobile apps using only JavaScript. It uses the same design as React, letting you compose a rich mobile UI from declarative components.

 

A React Native app is a real mobile app

With React Native, you don’t build a “mobile web app”, an “HTML5 app”, or a “hybrid app”. You build a real mobile app that’s indistinguishable from an app built using Objective-C or Java. React Native uses the same fundamental UI building blocks as regular iOS and Android apps. You just put those building blocks together using JavaScript and React.

 

Don’t waste time recompiling

React Native lets you build your app faster. Instead of recompiling, you can reload your app instantly. With Hot Reloading, you can even run new code while retaining your application state. Give it a try – it’s a magical experience.

 

Use native code when you need to

React Native combines smoothly with components written in Objective-C, Java, or Swift. It’s simple to drop down to native code if you need to optimize a few aspects of your application. It’s also easy to build part of your app in React Native, and part of your app using native code directly – that’s how the Facebook app works.