Merikanto

一簫一劍平生意,負盡狂名十五年

Apache is the most popular web server on the internet. It is used to serve more than half of all active websites. Although there are many viable web servers, it is helpful to understand how Apache works because of its ubiquity. Moreover, we should have a good understanding of what the main configuration files are used for and how they interact with each other.

In this post, we will examine some general configuration files and options that can be controlled within them, and we will follow the Ubuntu/Debian layout of Apache files.

Weiterlesen »

When we first create a new Ubuntu 18.04 server, there are a few configuration steps that we should take early on as part of the basic setup. This will increase the security and usability of the server and will give us a solid foundation for subsequent actions.

Note: If you wish to get up and running more quickly, please see the initial server setup script in the last section.

Weiterlesen »

System Design interviews are less about getting lucky and more about actually doing the hard work of attaining knowledge. When companies ask design questions, they want to evaluate your design skills and experience in designing large scale distributed systems. At the end, your performance in these interviews depends on the following 2 factors.

  • Your knowledge — gained either through studying or practical experience.
  • Your ability to articulate your thoughts.
Weiterlesen »

High availability is an important subset of reliability engineering, focused towards assuring that a system or component has a high level of operational performance in a given period of time. HA can bring tremendous benefits for systems that require increased reliability.

High Availability: Implement a cluster of load balancers behind a Floating IP.

Use Corosync or Pacemaker.

Weiterlesen »

In this post, we will cover a few notes on scaling the system, including Load Balancer & Reverse Proxy, Vertical & Horizontal scaling, and links to some architectures.

Weiterlesen »

When deciding which server architecture to use for your environment, there are many factors to consider, such as performance, scalability, availability, reliability, cost, and ease of management.

Here is a list of commonly used server setups, with a short description of each, including pros and cons. Keep in mind that all of the concepts covered here can be used in various combinations with one another, and that every environment has different requirements, so there is no single, correct configuration.

Weiterlesen »

Intelligent content caching is one of the most effective ways to improve the site experience. Caching is part of the core content delivery strategy implemented within the HTTP protocol. Components throughout the delivery path can all cache items to speed up subsequent requests, subject to the caching policies declared for the content.

In this post, we will go through how to select caching policies, pros and cons of caching, and different strategies to provide the best mixture of performance and flexibility.

Weiterlesen »