NGINX

NGINX

Application and Data / Application Hosting / Web Servers
Senior Fullstack Developer at QUANTUSflow Software GmbH·

Our whole DevOps stack consists of the following tools:

  • GitHub (incl. GitHub Pages/Markdown for Documentation, GettingStarted and HowTo's) for collaborative review and code management tool
  • Respectively Git as revision control system
  • SourceTree as Git GUI
  • Visual Studio Code as IDE
  • CircleCI for continuous integration (automatize development process)
  • Prettier / TSLint / ESLint as code linter
  • SonarQube as quality gate
  • Docker as container management (incl. Docker Compose for multi-container application management)
  • VirtualBox for operating system simulation tests
  • Kubernetes as cluster management for docker containers
  • Heroku for deploying in test environments
  • nginx as web server (preferably used as facade server in production environment)
  • SSLMate (using OpenSSL) for certificate management
  • Amazon EC2 (incl. Amazon S3) for deploying in stage (production-like) and production environments
  • PostgreSQL as preferred database system
  • Redis as preferred in-memory database/store (great for caching)

The main reason we have chosen Kubernetes over Docker Swarm is related to the following artifacts:

  • Key features: Easy and flexible installation, Clear dashboard, Great scaling operations, Monitoring is an integral part, Great load balancing concepts, Monitors the condition and ensures compensation in the event of failure.
  • Applications: An application can be deployed using a combination of pods, deployments, and services (or micro-services).
  • Functionality: Kubernetes as a complex installation and setup process, but it not as limited as Docker Swarm.
  • Monitoring: It supports multiple versions of logging and monitoring when the services are deployed within the cluster (Elasticsearch/Kibana (ELK), Heapster/Grafana, Sysdig cloud integration).
  • Scalability: All-in-one framework for distributed systems.
  • Other Benefits: Kubernetes is backed by the Cloud Native Computing Foundation (CNCF), huge community among container orchestration tools, it is an open source and modular tool that works with any OS.
READ MORE
28 upvotes·2 comments·3.3M views
Larry Gryziak
Larry Gryziak
·
April 30th 2020 at 6:34PM

So why is your deployment different for your (Heroku) test/dev and your stage/production?

·
Reply
Simon Reymann
Simon Reymann
·
May 1st 2020 at 10:32AM

When it comes to testing our web app we do not demand great computational resources and need a very simple, convenient and fast PaaS solution for deploying the app to our testers. In production though, the demand of great computational resources can rise very fast. With Amazon we are able to control that in better way.

·
Reply
Web Developer at Soltech LLC·

This week, we finally released NurseryPeople.com. In the end, I chose to provision our server on DigitalOcean. So far, I am SO happy with that decision. Although setting everything up was a challenge, and I learned a lot, DigitalOceans blogs helped in so many ways. I was able to set up nginx and the Laravel web app pretty smoothly. I am also using Buddy for deploying changes made in git, which is super awesome. All I have to do in order to deploy is push my code to my private repo, and buddy transfers everything over to DigitalOcean. So far, we haven't had any downtime and DigitalOceans prices are quite fair for the power under the hood.

READ MORE
Search for Plants and Nurseries | NurseryPeople (nurserypeople.com)
14 upvotes·8 comments·96.9K views
Kamal ABOUNAIM
Kamal ABOUNAIM
·
April 24th 2020 at 4:08PM

Great i just wanna learn about trick how to auto deploy after pushing to Git

thanks to your comment i ll see about Buddy

·
Reply
Christopher Wray
Christopher Wray
·
April 24th 2020 at 4:25PM

Buddy is amazing man. And for our site it is free, which is incredible.

·
Reply
Christopher Wray
Christopher Wray
·
April 24th 2020 at 4:25PM

I will say that last week DigitalOcean had an outage for a little. Didn't last very long, but something to think about.

·
Reply
Joshua Kapellen
Joshua Kapellen
·
April 30th 2020 at 2:28PM

Nothing has 100% uptime; you should always design and plan for outages as well. This lets you at least have some say in the user experience even during an outage.

·
Reply
Christopher Wray
Christopher Wray
·
April 30th 2020 at 2:48PM

How do you design and plan for outages if the server is completely down?

·
Reply
CEO at NaoLogic Inc·

We switched to Traefik so we can use the REST API to dynamically configure subdomains and have the ability to redirect between multiple servers.

We still use nginx with a docker-compose to expose the traffic from our APIs and TCP microservices, but for managing routing to the internet Traefik does a much better job

The biggest win for naologic was the ability to set dynamic configurations without having to restart the server

READ MORE
Naologic (blog.naologic.com)
12 upvotes·3 comments·687.9K views
Jerry Koerkenmeier
Jerry Koerkenmeier
·
March 16th 2020 at 6:19PM

Gabriel - are you using a service mesh like Maesh (from Containous which develops TraefikEE), Istio, or NGINX as service mesh? I agree Traefik is fantastic for routing and growing quickly. But wouldn't a service mesh assist with making the microservices and APIs discoverable and have better traffic control? Or is that how you have NGINX set up fronting your services?

·
Reply
Patricia Dugan
Patricia Dugan
·
March 5th 2021 at 11:01PM

Hello, Jerry. Here's the case study we did with Naologic. Perhaps it'll be useful for you. https://traefik.io/blog/naologic-surpasses-scaling-demands-of-microservice-infrastructure-by-using-traefik/

·
Reply
Gabriel Pa
Gabriel Pa
·
March 6th 2021 at 10:03AM

We're adding Maesh in our next major version upgrade, yes. We handle service discovery via K8S API

·
Reply
Needs advice
on
NGINXNGINX
and
GraphQLGraphQL

We are currently using nginx as a reverse proxy for API mutations and GraphQL as a unified API service for all API access and fetch, where GQL has good support for caching, sorting, pagination, and querying. Is it recommended to use NGINX for all of the above purposes, and when API aggregation is not the case, not use GQL.

Or for sorting, querying, pagination, caching - is GQL always a better choice, even if there is no API aggregation involved?

READ MORE
6 upvotes·45.2K views
Replies (2)
Full-stack software developer at Grafeno Digital·
Recommends
Traefik

It depends of your architecture, but my use is pretty simple up to now. My reverse proxy using nginx only skips the hit of the location /graphql to our application server through an upstream location that handles it, but at the future it'll probably be another app or a microservice. If you want something to load balance, probably it's better to use something like traefik.

READ MORE
4 upvotes·1.8K views
Recommends
GraphQL

Nginx is very low level and particularly difficult to debug (the documentation is really extensive and not so readable, and debugging when configured wrong is a pain), it will give you headaches for sure ! Keep nginx as minimal as possible and use it only for bare server configuration (handling SSL, domain names, reversed proxy, and load balancing). Nginx is also very fast to serve static assets. Nginx was originally created to serve static / templated WEB Servers and never as a REST API Handler. For "sorting, querying, pagination, caching" i'd stay with GQL because it's super easy to debug, it's readable, and mostly it was created to be simple and to handle REST API.

READ MORE
3 upvotes·1 comment·1.7K views
Deepanjan Majumdar
Deepanjan Majumdar
·
July 18th 2020 at 4:16PM

Thanks for the response, I agree with the same idea and it validated with your thought as well. Somehow it is also intuitive not to use Nginx for "sorting, querying, pagination, caching" .

·
Reply

I am currently in school for computer science and am doing a class project about web servers. Our assignment is to research and select one of these web servers. Could you please let me know which one you would choose among NGINX, Microsoft IIS, and Apache HTTP Server and why?

READ MORE
3 upvotes·33.2K views
Replies (1)
Recommends
NGINX

i use nginx nginx is more better than apache

READ MORE
2 upvotes·1 comment·10 views
qtbrtchip
qtbrtchip
·
November 25th 2021 at 4:52AM

I use nginx for most of my projects. My projects are not big, not handling very high workload. But it run quite well up to now.

·
Reply
Needs advice
on
TraefikTraefik
and
NGINXNGINX

We are looking to configure a load balancer with some admin UI. We are currently struggling to decide between NGINX, Traefik, HAProxy, and Envoy. We will use a load balancer in a containerized environment and the load balancer should flexible and easy to reload without changes in case containers are scaled up.

READ MORE
5 upvotes·113.8K views
Replies (4)
CEO at NaoLogic Inc·
Recommends
Traefik
at

I'd recommend using Traefik. I used it both in Kubernetes and on simple EC2 servers. If you need help with the configs let me know

READ MORE
4 upvotes·4K views
DevOps Engineer at cloudfalcon.io·

You need to consider something, When these tools were created, and for what purposes? both Nginx and HAProxy were created for Web servers and Loadbalncing, a reverse proxy for Physical and VM. on the other hand, Traefik and Envoy were created for Microservices ecosystem, provides L7 routing, etc...

If you are using Public Clouds like AWS, or GCP, you may want to consider their solutions for LB, routing, etc. otherwise, you way use something else, did you consider using other solutions? check this compare and choose based on that, I would use Itsio https://stackshare.io/stackups/istio-vs-traefik-vs-envoy

READ MORE
2 upvotes·3K views
View all (4)