nginx vs Node.js

Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

nginx
nginx

54.7K
13.1K
+ 1
5.4K
Node.js
Node.js

29K
23K
+ 1
7.9K
Add tool

nginx vs Node.js: What are the differences?

What is nginx? A high performance free open source web server powering busiest sites on the Internet. nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. According to Netcraft nginx served or proxied 30.46% of the top million busiest sites in Jan 2018.

What is Node.js? A platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

nginx belongs to "Web Servers" category of the tech stack, while Node.js can be primarily classified under "Frameworks (Full Stack)".

"High-performance http server", "Performance" and "Easy to configure" are the key factors why developers consider nginx; whereas "Npm", "Javascript" and "Great libraries" are the primary reasons why Node.js is favored.

nginx and Node.js are both open source tools. It seems that Node.js with 35.5K GitHub stars and 7.78K forks on GitHub has more adoption than nginx with 9.11K GitHub stars and 3.44K GitHub forks.

According to the StackShare community, nginx has a broader approval, being mentioned in 8677 company stacks & 2561 developers stacks; compared to Node.js, which is listed in 4104 company stacks and 4042 developer stacks.

What is nginx?

nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server, written by Igor Sysoev. According to Netcraft nginx served or proxied 30.46% of the top million busiest sites in Jan 2018.

What is Node.js?

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose nginx?
Why do developers choose Node.js?

Sign up to add, upvote and see more prosMake informed product decisions

    Be the first to leave a con

    Sign up to add, upvote and see more consMake informed product decisions

    Jobs that mention nginx and Node.js as a desired skillset
    PinterestPinterest
    San Francisco, CA; Palo Alto, CA
    PinterestPinterest
    San Francisco, CA; Palo Alto, CA
    PinterestPinterest
    San Francisco, CA; Palo Alto, CA
    PinterestPinterest
    San Francisco, CA; Palo Alto, CA
    What companies use nginx?
    What companies use Node.js?

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with nginx?
    What tools integrate with Node.js?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to nginx and Node.js?
    HAProxy
    HAProxy (High Availability Proxy) is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications.
    lighttpd
    lighttpd has a very low memory footprint compared to other webservers and takes care of cpu-load. Its advanced feature-set (FastCGI, CGI, Auth, Output-Compression, URL-Rewriting and many more) make lighttpd the perfect webserver-software for every server that suffers load problems.
    Traefik
    A modern HTTP reverse proxy and load balancer that makes deploying microservices easy. Traefik integrates with your existing infrastructure components and configures itself automatically and dynamically.
    Caddy
    Caddy is a production-ready open-source web server that is fast, easy to use, and makes you more productive. HTTP/2 and HTTPS by default
    Envoy
    Originally built at Lyft, Envoy is a high performance C++ distributed proxy designed for single services and applications, as well as a communication bus and “universal data plane” designed for large microservice “service mesh” architectures.
    See all alternatives
    Decisions about nginx and Node.js
    HAProxy
    HAProxy
    Varnish
    Varnish
    Tornado
    Tornado
    Django
    Django
    Redis
    Redis
    RabbitMQ
    RabbitMQ
    nginx
    nginx
    Memcached
    Memcached
    MySQL
    MySQL
    Python
    Python
    Node.js
    Node.js

    Around the time of their Series A, Pinterest’s stack included Python and Django, with Tornado and Node.js as web servers. Memcached / Membase and Redis handled caching, with RabbitMQ handling queueing. Nginx, HAproxy and Varnish managed static-delivery and load-balancing, with persistent data storage handled by MySQL.

    See more
    nginx
    nginx
    Webpack
    Webpack
    Vue.js
    Vue.js
    Framework7
    Framework7
    npm
    npm
    MySQL
    MySQL
    Ubuntu
    Ubuntu
    Node.js
    Node.js
    #Plaid
    #Framework7
    #HapiJS
    #Lenovo

    I just designed, developed, and deployed my own budgeting app, dailybudget.cc, which allows me to automate my budgeting the way I have always done it, in a way that I could never fully capture with other budgeting apps, such as Mint, EveryDollar, or YNAB. I spent 4 years from the time I first had the idea to the time I actually sat down to design it and start development. During this time I evaluated many other budgeting app solutions, and had even architected a prototype that I never ended up using. But boy, have technologies come much further in 4 years.

    Though my first prototype used Java and Tomcat, I completely abandoned those 4 years later in favor of Node.js technologies, which I have found are equally as stable, more flexible (for better or for worse), and capable of significantly more rapid development. Since what I have deployed now is in beta and is primarily for limited user use, I favored rapid development over slower development where I would write more automated unit tests. I chose to build the app as a HTML5 web application (rather than native iOS or Android, for now), and I used a separated API backend/Web frontend model. My target platform for use with the app is mobile handheld touch devices, though it can work on any laptop or desktop with a touchscreen. Given these design targets, many of the technologies I chose were because of familiarity with them as well as a strong online community, and some technologies I chose that I had to learn anew, because they appeared to fit my needs.

    My entire app runs on a #lenovo IdeaCentre desktop on my home network, on which I have installed Ubuntu 18.04. Ubuntu is something I have switched to after a long time of use and familiarity with RedHat Enterprise Linux and CentOS, because the online support for Ubuntu is now tremendous, and there is so much documentation and examples online of how to configure and use Ubuntu; not to mention I have not been thrilled with the direction new releases of CentOS. Ubuntu is also a good environment for development - it is so easy to follow the many online examples. Lastly, I may migrate my app and configuration to Amazon AWS, which also uses Ubuntu for its EC2 Linux VMs, so having Ubuntu now is helpful for that prospect.

    The API backend uses Node.js, with #HapiJS as the API server framework and MySQL as my persistence database. HapiJS is something I have had familiarity with and is just a phenomenal framework to plug into and configure, especially if you use it for a route-based API. #Mysql has a great online community. I could've used PostgreSQL too, but I am more familiar with MySQL. Also, if I migrate to Amazon AWS, Amazon's RDS uses MySQL. I use npm as a one-stop-shop package manager and environment manager.

    The Web frontend uses a combination of Framework7 and Vue.js. I cannot evangelize Framework7 enough! It is a fantasic tool by @nolimits4web (GitHub) that is really easy to use, really well thought out, and really performant. Framework7 simulates the native iOS or Android (Google Material) experiences, all using HTML5 constructs (HTML+CSS+JS). Vue.js is another very fantastic binding and frontend framework which has a good online community and is well documented and easy to use. I had to choose between VueJS and ReactJS, and ultimately chose VueJS over ReactJS because it seemed to favor more rapid development with less ramp-up time, whereas I understood ReactJS to be more of an enterprise level framework (though still good for smaller projects like mine). When using Framework7 with VueJS, NodeJS is used along with Webpack to transpile my code into browser-friendly JavaScript, HTML, etc. Webpack was nice to use because it has a hot-deploy development mode to enable rapid development without me having stop, recompile, and start my server (this was one of several reasons against using Java with Tomcat). I had no familiarity with Framework7, VueJS, or Webpack prior to this project.

    I use nginx as my web server and have the API running behind a reverse proxy, and all of the web frontent content hosted as static content.

    I use the plaid API to sync my bank transactions to my database. This is another fantastic framework (though not free beyond development use) that it turns out is extremely easy to use for the complex job that it solves.

    See more
    Simon Bettison
    Simon Bettison
    Managing Director at Bettison.org Limited · | 6 upvotes · 73.9K views
    atBettison.org LimitedBettison.org Limited
    Amazon EC2 Container Service
    Amazon EC2 Container Service
    Docker
    Docker
    Amazon VPC
    Amazon VPC
    Amazon Route 53
    Amazon Route 53
    Amazon SQS
    Amazon SQS
    Amazon SES
    Amazon SES
    Amazon CloudFront
    Amazon CloudFront
    nginx
    nginx
    Unicorn
    Unicorn
    Ruby
    Ruby
    Travis CI
    Travis CI
    Selenium
    Selenium
    RSpec
    RSpec
    Rails
    Rails
    Amazon ElastiCache
    Amazon ElastiCache
    Redis
    Redis
    Sidekiq
    Sidekiq
    Elasticsearch
    Elasticsearch
    PostgreSQL
    PostgreSQL

    In 2010 we made the very difficult decision to entirely re-engineer our existing monolithic LAMP application from the ground up in order to address some growing concerns about it's long term viability as a platform.

    Full application re-write is almost always never the answer, because of the risks involved. However the situation warranted drastic action as it was clear that the existing product was going to face severe scaling issues. We felt it better address these sooner rather than later and also take the opportunity to improve the international architecture and also to refactor the database in. order that it better matched the changes in core functionality.

    PostgreSQL was chosen for its reputation as being solid ACID compliant database backend, it was available as an offering AWS RDS service which reduced the management overhead of us having to configure it ourselves. In order to reduce read load on the primary database we implemented an Elasticsearch layer for fast and scalable search operations. Synchronisation of these indexes was to be achieved through the use of Sidekiq's Redis based background workers on Amazon ElastiCache. Again the AWS solution here looked to be an easy way to keep our involvement in managing this part of the platform at a minimum. Allowing us to focus on our core business.

    Rails ls was chosen for its ability to quickly get core functionality up and running, its MVC architecture and also its focus on Test Driven Development using RSpec and Selenium with Travis CI providing continual integration. We also liked Ruby for its terse, clean and elegant syntax. Though YMMV on that one!

    Unicorn was chosen for its continual deployment and reputation as a reliable application server, nginx for its reputation as a fast and stable reverse-proxy. We also took advantage of the Amazon CloudFront CDN here to further improve performance by caching static assets globally.

    We tried to strike a balance between having control over management and configuration of our core application with the convenience of being able to leverage AWS hosted services for ancillary functions (Amazon SES , Amazon SQS Amazon Route 53 all hosted securely inside Amazon VPC of course!).

    Whilst there is some compromise here with potential vendor lock in, the tasks being performed by these ancillary services are no particularly specialised which should mitigate this risk. Furthermore we have already containerised the stack in our development using Docker environment, and looking to how best to bring this into production - potentially using Amazon EC2 Container Service

    See more
    Chris McFadden
    Chris McFadden
    VP, Engineering at SparkPost · | 7 upvotes · 44.1K views
    atSparkPostSparkPost
    Lua
    Lua
    OpenResty
    OpenResty
    nginx
    nginx

    We use nginx and OpenResty as our API proxy running on EC2 for auth, caching, and some rate limiting for our dozens of microservices. Since OpenResty support embedded Lua we were able to write a custom access module that calls out to our authentication service with the resource, method, and access token. If that succeeds then critical account info is passed down to the underlying microservice. This proxy approach keeps all authentication and authorization in one place and provides a unified CX for our API users. Nginx is fast and cheap to run though we are always exploring alternatives that are also economical. What do you use?

    See more
    David Ritsema
    David Ritsema
    Frontend Architect at Herman Miller · | 7 upvotes · 17.1K views
    atHerman MillerHerman Miller
    prismic.io
    prismic.io
    Next.js
    Next.js
    React
    React
    Node.js
    Node.js

    When we started thinking about technology options for our own Design System, we wanted to focus on two primary goals

    1. Build a design system site using design system components - a living prototype
    2. Explore new ways of working to position our technical capabilities for the future

    We have a small team of developers responsible for the initial build so we knew that we couldn’t spend too much time maintaining infrastructure on the Backend. We also wanted freedom to make decisions on the Frontend with the ability to adapt over time.

    For this first iteration we decided to use Node.js, React, and Next.js. Content will be managed via headless CMS in prismic.io.

    1. Next.js so that we can run React serverside without worrying about server code.
    2. prismic.io so that our content is accessible via API and our frontend is fully independent.
    See more
    Python
    Python
    Django
    Django
    JavaScript
    JavaScript
    Node.js
    Node.js

    Django or NodeJS? Hi, I’m thinking about which software I should use for my web-app. What about Node.js or Django for the back-end? I want to create an online preparation course for the final school exams in my country. At the beginning for maths. The course should contain tutorials and a lot of exercises of different types. E.g. multiple choice, user text/number input and drawing tasks. The exercises should change (different levels) with the learning progress. Wrong questions should asked again with different numbers. I also want a score system and statistics. So far, I have got only limited web development skills. (some HTML, CSS, Bootstrap and Wordpress). I don’t know JavaScript or Python.

    Possible pros for Python / Django: - easy syntax, easier to learn for me as a beginner - fast development, earlier release - libraries for mathematical and scientific computation

    Possible pros for JavaScript / Node.js: - great performance, better choice for real time applications: user should get the answer for a question quickly

    Which software would you use in my case? Are my arguments for Python/NodeJS right? Which kind of database would you use?

    Thank you for your answer!

    Node.js JavaScript Django Python

    See more
    GitHub
    GitHub
    nginx
    nginx
    ESLint
    ESLint
    AVA
    AVA
    Semantic UI React
    Semantic UI React
    Redux
    Redux
    React
    React
    PostgreSQL
    PostgreSQL
    ExpressJS
    ExpressJS
    Node.js
    Node.js
    FeathersJS
    FeathersJS
    Heroku
    Heroku
    Amazon EC2
    Amazon EC2
    Kubernetes
    Kubernetes
    Jenkins
    Jenkins
    Docker Compose
    Docker Compose
    Docker
    Docker
    #Frontend
    #Stack
    #Backend
    #Containers
    #Containerized

    Recently I have been working on an open source stack to help people consolidate their personal health data in a single database so that AI and analytics apps can be run against it to find personalized treatments. We chose to go with a #containerized approach leveraging Docker #containers with a local development environment setup with Docker Compose and nginx for container routing. For the production environment we chose to pull code from GitHub and build/push images using Jenkins and using Kubernetes to deploy to Amazon EC2.

    We also implemented a dashboard app to handle user authentication/authorization, as well as a custom SSO server that runs on Heroku which allows experts to easily visit more than one instance without having to login repeatedly. The #Backend was implemented using my favorite #Stack which consists of FeathersJS on top of Node.js and ExpressJS with PostgreSQL as the main database. The #Frontend was implemented using React, Redux.js, Semantic UI React and the FeathersJS client. Though testing was light on this project, we chose to use AVA as well as ESLint to keep the codebase clean and consistent.

    See more
    nginx
    nginx

    I use nginx because it is very light weight. Where Apache tries to include everything in the web server, nginx opts to have external programs/facilities take care of that so the web server can focus on efficiently serving web pages. While this can seem inefficient, it limits the number of new bugs found in the web server, which is the element that faces the client most directly.

    See more
    Tom Klein
    Tom Klein
    CEO at Gentlent · | 4 upvotes · 24.8K views
    atGentlentGentlent
    Python
    Python
    Electron
    Electron
    Socket.IO
    Socket.IO
    Google Compute Engine
    Google Compute Engine
    TypeScript
    TypeScript
    ES6
    ES6
    Ubuntu
    Ubuntu
    PostgreSQL
    PostgreSQL
    React
    React
    nginx
    nginx
    Sass
    Sass
    HTML5
    HTML5
    PHP
    PHP
    Node.js
    Node.js
    JavaScript
    JavaScript

    Our most used programming languages are JavaScript / Node.js for it's lightweight and fast use, PHP because everyone knows it, HTML5 because you can't live without it and Sass to write great CSS. Occasionally, we use nginx as a web server and proxy, React for our UX, PostgreSQL as fast relational database, Ubuntu as server OS, ES6 and TypeScript for Node, Google Compute Engine for our infrastructure, and Socket.IO and Electron for specific use cases. We also use Python for some of our backends.

    See more
    Nicolas Theck
    Nicolas Theck
    Student at RocketPlay · | 3 upvotes · 19.5K views
    atRocketPlayRocketPlay
    HTML5
    HTML5
    Twilio SendGrid
    Twilio SendGrid
    Node.js
    Node.js
    OVH
    OVH
    PM2
    PM2
    JSON Web Token
    JSON Web Token
    PostgreSQL
    PostgreSQL
    Sequelize
    Sequelize
    ExpressJS
    ExpressJS
    CloudFlare
    CloudFlare
    nginx
    nginx
    npm
    npm
    Ubuntu
    Ubuntu
    GitLab CI
    GitLab CI
    GitLab
    GitLab
    Webpack
    Webpack
    Vue.js
    Vue.js
    JavaScript
    JavaScript
    #Ns
    #Passport
    #Pulsejs
    #Backend
    #Frontend

    We use JavaScript in both our #Frontend and #Backend. Front-End wise, we're using tools like Vue.js , Webpack (for dev & building), pulsejs . For delivering the content, we push to GitLab & use GitLab CI (running on our own Ubuntu machine) to install (with npm) our packages, build the app trough Webpack and finally push it to our nginx server via a folder. From there, use accessing the website will get cached content thanks to CloudFlare. Back-End wise, we again use JavaScript with tools such as ExpressJS (http server), Sequelize (database, server running on PostgreSQL ) but also JSON Web Token with passport to authenticate our users. Same process used in front-end is used for back-end, we just copy files to a dist where PM2 watches for any change made to the Node.js app. Traffic doesn't go trough CloudFlare for upload process reasons but our nginx reverse proxy handles the request (which do go trough CloudFlare SSL-wise, since we're using their ns servers with our OVH domain.) Other utils we use are SendGrid for email sending & obviously HTML5 for the base Vue.js app. I hope this article will tell you more about the Tech we use here at RocketPlay :p

    See more
    Marcel Kornegoor
    Marcel Kornegoor
    CTO at AT Computing · | 6 upvotes · 8K views
    Apache HTTP Server
    Apache HTTP Server
    nginx
    nginx

    nginx or Apache HTTP Server that's the question. The best choice depends on what it needs to serve. In general, Nginx performs better with static content, where Apache and Nginx score roughly the same when it comes to dynamic content. Since most webpages and web-applications use both static and dynamic content, a combination of both platforms may be the best solution.

    Since both webservers are easy to deploy and free to use, setting up a performance or feature comparison test is no big deal. This way you can see what solutions suits your application or content best. Don't forget to look at other aspects, like security, back-end compatibility (easy of integration) and manageability, as well.

    A reasonably good comparison between the two can be found in the link below.

    See more
    Node.js
    Node.js
    Meteor
    Meteor

    Mixmax was originally built using Meteor as a single monolithic app. As more users began to onboard, we started noticing scaling issues, and so we broke out our first microservice: our Compose service, for writing emails and Sequences, was born as a Node.js service. Soon after that, we broke out all recipient searching and storage functionality to another Node.js microservice, our Contacts service. This practice of breaking out microservices in order to help our system more appropriately scale, by being more explicit about each microservice’s responsibilities, continued as we broke out numerous more microservices.

    See more
    AWS Elastic Beanstalk
    AWS Elastic Beanstalk
    AWS Elastic Load Balancing (ELB)
    AWS Elastic Load Balancing (ELB)
    nginx
    nginx
    Go
    Go
    Amazon EC2
    Amazon EC2
    Node.js
    Node.js
    Meteor
    Meteor
    Mixmax
    Mixmax

    As Mixmax began to scale super quickly, with more and more customers joining the platform, we started to see that the Meteor app was still having a lot of trouble scaling due to how it tried to provide its reactivity layer. To be honest, this led to a brutal summer of playing Galaxy container whack-a-mole as containers would saturate their CPU and become unresponsive. I’ll never forget hacking away at building a new microservice to relieve the load on the system so that we’d stop getting paged every 30-40 minutes. Luckily, we’ve never had to do that again! After stabilizing the system, we had to build out two more microservices to provide the necessary reactivity and authentication layers as we rebuilt our Meteor app from the ground up in Node.js. This also had the added benefit of being able to deploy the entire application in the same AWS VPCs. Thankfully, AWS had also released their ALB product so that we didn’t have to build and maintain our own websocket layer in Amazon EC2. All of our microservices, except for one special Go one, are now in Node with an nginx frontend on each instance, all behind AWS Elastic Load Balancing (ELB) or ALBs running in AWS Elastic Beanstalk.

    See more
    Praveen Mooli
    Praveen Mooli
    Technical Leader at Taylor and Francis · | 11 upvotes · 95.4K views
    MongoDB Atlas
    MongoDB Atlas
    Amazon S3
    Amazon S3
    Amazon DynamoDB
    Amazon DynamoDB
    Amazon RDS
    Amazon RDS
    Serverless
    Serverless
    Docker
    Docker
    Terraform
    Terraform
    Travis CI
    Travis CI
    GitHub
    GitHub
    RxJS
    RxJS
    Angular 2
    Angular 2
    AWS Lambda
    AWS Lambda
    Amazon SQS
    Amazon SQS
    Amazon SNS
    Amazon SNS
    Amazon Kinesis Firehose
    Amazon Kinesis Firehose
    Amazon Kinesis
    Amazon Kinesis
    Flask
    Flask
    Python
    Python
    ExpressJS
    ExpressJS
    Node.js
    Node.js
    Spring Boot
    Spring Boot
    Java
    Java
    #Data
    #Devops
    #Webapps
    #Eventsourcingframework
    #Microservices
    #Backend

    We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

    To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

    To build #Webapps we decided to use Angular 2 with RxJS

    #Devops - GitHub , Travis CI , Terraform , Docker , Serverless

    See more
    Martin Johannesson
    Martin Johannesson
    Senior Software Developer at IT Minds · | 10 upvotes · 12.2K views
    atIT MindsIT Minds
    AMP
    AMP
    PWA
    PWA
    React
    React
    MongoDB
    MongoDB
    Next.js
    Next.js
    GraphQL
    GraphQL
    Apollo
    Apollo
    PostgreSQL
    PostgreSQL
    TypeORM
    TypeORM
    Node.js
    Node.js
    TypeScript
    TypeScript
    #Serverless
    #Backend
    #B2B

    At IT Minds we create customized internal or #B2B web and mobile apps. I have a go to stack that I pitch to our customers consisting of 3 core areas. 1) A data core #backend . 2) A micro #serverless #backend. 3) A user client #frontend.

    For the Data Core I create a backend using TypeScript Node.js and with TypeORM connecting to a PostgreSQL Exposing an action based api with Apollo GraphQL

    For the micro serverless backend, which purpose is verification for authentication, autorization, logins and the likes. It is created with Next.js api pages. Using MongoDB to store essential information, caching etc.

    Finally the frontend is built with React using Next.js , TypeScript and @Apollo. We create the frontend as a PWA and have a AMP landing page by default.

    See more
    Interest over time
    Reviews of nginx and Node.js
    Avatar of mihaicracan
    Web Developer, Freelancer
    Review ofNode.jsNode.js

    I have benchmarked Node.js and other popular frameworks using a real life application example. You can find the results here: https://medium.com/@mihaigeorge.c/web-rest-api-benchmark-on-a-real-life-application-ebb743a5d7a3

    How developers use nginx and Node.js
    Avatar of MaxCDN
    MaxCDN uses Node.jsNode.js

    We decided to move the provisioning process to an API-driven process, and had to decide among a few implementation languages:

    • Go, the server-side language from Google
    • NodeJS, an asynchronous framework in Javascript

    We built prototypes in both languages, and decided on NodeJS:

    • NodeJS is asynchronous-by-default, which suited the problem domain. Provisioning is more like “start the job, let me know when you’re done” than a traditional C-style program that’s CPU-bound and needs low-level efficiency.
    • NodeJS acts as an HTTP-based service, so exposing the API was trivial

    Getting into the headspace and internalizing the assumptions of a tool helps pick the right one. NodeJS assumes services will be non-blocking/event-driven and HTTP-accessible, which snapped into our scenario perfectly. The new NodeJS architecture resulted in a staggering 95% reduction in processing time: requests went from 7.5 seconds to under a second.

    Avatar of MaxCDN
    MaxCDN uses nginxnginx

    The original API performed a synchronous Nginx reload after provisioning a zone, which often took up to 30 seconds or longer. While important, this step shouldn’t block the response to the user (or API) that a new zone has been created, or block subsequent requests to adjust the zone. With the new API, an independent worker reloads Nginx configurations based on zone modifications.It’s like ordering a product online: don’t pause the purchase process until the product’s been shipped. Say the order has been created, and you can still cancel or modify shipping information. Meanwhile, the remaining steps are being handled behind the scenes. In our case, the zone provision happens instantly, and you can see the result in your control panel or API. Behind the scenes, the zone will be serving traffic within a minute.

    Avatar of Trello
    Trello uses Node.jsNode.js

    The server side of Trello is built in Node.js. We knew we wanted instant propagation of updates, which meant that we needed to be able to hold a lot of open connections, so an event-driven, non-blocking server seemed like a good choice. Node also turned out to be an amazing prototyping tool for a single-page app. The prototype version of the Trello server was really just a library of functions that operated on arrays of Models in the memory of a single Node.js process, and the client simply invoked those functions through a very thin wrapper over a WebSocket. This was a very fast way for us to get started trying things out with Trello and making sure that the design was headed in the right direction. We used the prototype version to manage the development of Trello and other internal projects at Fog Creek.

    Avatar of AngeloR
    AngeloR uses Node.jsNode.js

    All backend code is done in node.js

    We have a SOA for our systems. It isn't quite Microservices jsut yet, but it does provide domain encapsulation for our systems allowing the leaderboards to fail without affecting the login or education content.

    We've written a few internal modules including a very simple api framework.

    I ended up picking Node.js because the game client is entirely in JavaScript as well. This choice made it a lot easier for developers to cross borders between being "client side" game developers and "server side" game developers. It also meant that the pool of knowledge/best practices is applicable almost across the company.

    Avatar of Tony Manso
    Tony Manso uses Node.jsNode.js

    Node.js is the foundation for the server. Using Express.js for serving up web content, and sockets.io for synchronizing communications between all clients and the server, the entire game runs as Javascript in Node.js.

    I don't know how well this will scale if/when I have hundreds of people connected simultaneously, but I suspect that when that time comes, it may be just a matter of increasing the hardware.

    As for why I chose Node.js... I just love JavaScript! My code is all original, meaning that I didn't have to inherit anyone's bad Javascript. I'm perfectly capable of creating my own bad Javascript, thank you! Also, npm rocks!

    Avatar of Cloudcraft
    Cloudcraft uses nginxnginx

    Nginx serves as the loadbalancer, router and SSL terminator of cloudcraft.co. As one of our app server nodes is spun up, an Ansible orchestration script adds the new node dynamically to the nginx loadbalancer config which is then reloaded for a zero downtime seamless rolling deployment. By putting nginx in front or whatever web and API servers you might have, you gain a ton of flexibility. While previously I've cobbled together HAProxy and Stun as a poor man's loadbalancer, nginx just does a much better job and is far simpler in the long run.

    Avatar of Tarun Singh
    Tarun Singh uses Node.jsNode.js

    Used node.js server as backend. Interacts with MongoDB using MongoSkin package which is a wrapper for the MongoDB node.js driver. It uses express for routing and cors package for enabling cors and eyes package for enhancing readability of logs. Also I use nodemon which takes away the effort to restart the server after making changes.

    Avatar of datapile
    datapile uses nginxnginx

    Used nginx as exactly what it is great for: serving static content in a cache-friendly, load balanced manner.

    It is exclusively for production web page hosting, we don't use nginx internally, only on the public-facing versions of static sites / Angular & Backbone/Marionette applications.

    Avatar of Pēteris Caune
    Pēteris Caune uses nginxnginx

    We use NGINX both as reverse HTTP proxy and also as a SMTP proxy, to handle incoming email.

    We previously handled incoming email with Mandrill, and then later with AWS SES. Handling incoming email yourself is not that much more difficult and saves quite a bit on operational costs.

    Avatar of Wirkn Inc.
    Wirkn Inc. uses nginxnginx

    NGINX sits in front of all of our web servers. It is fantastic at load balancing traffic as well as serving as a cache at times when under massive load. It's a robust tool that we're happy to have at the front lines of all Wirkn web apps.

    How much does nginx cost?
    How much does Node.js cost?
    Pricing unavailable
    Pricing unavailable