[Super beginner] Just read this! NGINX explanation that even beginners can understand
table of contents
Hello, this is Kitada from Beyond Co., Ltd.
This time, I will explain it in an easy-to-understand manner, including diagrams, so that even beginners can understand NGINX by reading this article!
What is NGINX?
an OSS (open source software) web server software developed by Russian software developer Igor Sysoev .
First released in 2004, it has rapidly gained popularity and is now one of the most popular web servers in the world, rivaling Apache.
What exactly is a web server?
Basically, a web server is a server that receives requests from users, executes processing, and returns responses to users.
When viewing a website such as a homepage, a user uses a web browser to send a request to a web server. The web server displays the page on the client's screen by returning data based on the received request to the web browser as a response.
by installing web server software such as NGINX it becomes possible to run the server as a web server .
Main features of NGINX
Now that we have explained about the web server, let's go on to introduce the features of NGINX.
NGINX provides various functions in addition to the basic functions as a web server.
◇ Web server
can receive HTTP/HTTPS requests and return the corresponding resources (static files such as HTML, CSS, JavaScript, etc.).
◇ Reverse proxy
You can use other web servers as a backend to process requests from users.
◇ Load balancer
Requests can be distributed and processed among multiple web servers.
◇ Cache Server
Static content can be cached to improve delivery speed.
NGINX basically used as a web server, but I think it's good to understand that it can also be used as a stand-alone function
Advantages and disadvantages of NGINX
Now that you understand what NGINX is and what web servers are, let's take a look at the benefits and challenges of using NGINX as a web server.
Benefits of NGINX
NGINX's main characteristics are high speed , stability , and scalability
○ High speed
NGINX uses an event-driven architecture, and instead of creating a process for each request, it uses an event loop method (a method in which a single thread performs loop processing and processes events accumulated in a queue). This allows a small number of processes to handle a large number of requests. In particular, it processes static content such as HTML and images quickly, so depending on the content, it can deliver websites faster than Apache.
○ Stability
NGINX has a simple and lightweight design, and while Apache uses multi-core threads, NGINX uses a single thread, so it uses less memory. Even if the number of simultaneous connections increases, memory consumption does not increase significantly, so it operates stably and is less likely to malfunction.
○ Extensibility
NGINX allows you to add various functions by using extensions called modules. So you can customize it to suit your needs.
Disadvantages of NGINX
Next, I will introduce the challenges when using NGINX.
NGINX is not good at processing dynamic content.Although is good at distributing static content, its processing speed for dynamic content such as bulletin boards and SNS is not as fast as Apache . If there is a large amount of dynamic content, it is necessary to devise a configuration that can complement the processing of dynamic content by combining it with Apache, which is good at processing dynamic content, or by linking with a CMS or application server. It will be.
△ There is less documentation for beginners
NGINX has a shorter history than Apache by about 10 years, so compared to Apache, there is definitely less documentation written in Japanese for beginners. Therefore, even when you want to extend the functionality of Apache, it is easier to obtain information on how to implement it on the Internet, making it easier to add functionality.
Based on the above, it is possible to improve server performance by using ``NGINX'' for processing large amounts of static content and simultaneous connections, and ``Apache'' for processing small but heavy videos, etc. depending on the purpose. Masu. It is also possible to share advantages and overcome disadvantages by devising configurations and interoperating.
History and future of NGINX
Finally, I will introduce the history and future of NGINX.
As I wrote in the introduction at the beginning, NGINX was released as a free OSS in 2004 by Russian developer Igor Sisoev (hereinafter referred to as Mr. Sisoev). Later, in 2011, Mr. Sysoev, together with Maxim Dounin and Andrew Alexeev, founded NGINX Inc., a company to provide commercial support. it is estimated that 34.3% of the world's web servers are using NGINX
NGINX Inc. was acquired by American server company F5 Networks in 2019 for $670 million (approximately 100 billion yen), but the company announced that it would continue to maintain NGINX as open source software. After the acquisition, development continued as before.
However, on February 14, 2024, Mr. Doonin, one of the co-founders of NGINX Inc., announced on the NGINX mailing list that he would be parting ways with F5 Networks and would be developing a new fork of NGINX called "freenginx." Announced. According to the announcement, Mr. Dunin lost his relationship with F5 Networks when the Moscow office was closed in 2022, and since then he has been involved in the development of NGINX as a volunteer.
There didn't seem to be any problems with the fact that F5 Networks was unpaid, but the management of F5 Networks changed hands and interfered with NGINX's security policy, ignoring developers and the community, and the development of NGINX was completely transferred to F5 Networks. Since Mr. Doonin was unable to control NGINX, he started a new project called ``freenginx'', which is a fork version of NGINX It is believed that the launch was announced
freenginx, a fork of NGINX, released the official version freenginx-1.25.4 freenginx-1.26.0 " is also provided. Masu.
◇ Quote: https://freenginx.org/en/download.html
The next point of interest will be how freenginx will evolve separately from NGINX.
NGINX Summary
NGINX is a fast, stable, and scalable web server that can be used for a wide range of purposes!
If you use it properly, you can significantly improve the performance of your web server, so please give it a try.
If you want to learn more about NGINX, please refer to the official website and documents below.
◇ NGINX official website: https://nginx.org
◇ NGINX official documentation: https://nginx.org/en/docs
We also introduce NGINX in detail in the article below, so please take a look.
https://beyondjapan.com/blog/2023/11/nginx_history
I hope this blog post helped you understand more about NGINX.