Using Nginx on Docker

Introduction

Nginx is a popular open-source web server known for its superior performance compared to the Apache web server. Nginx supports various functionalities, including deploying an API gateway (reverse proxy), load balancer, and email proxy. It was initially developed to build a web server capable of efficiently handling 10,000 concurrent connections with low memory usage.

Run Nginx with Docker

To use Nginx with Docker, simply execute the following command:

docker run -dp 8080:80 nginx:alpine


By default, Nginx uses port 80, but you can map it to a different port if needed.

Custom Nginx Configuration

To customize the Nginx configuration, first, create a `docker-compose.yml` file with the following content:

services:
serviceName:
image: nginx:alpine
ports:
- 8080:80
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
- ./index.html:/usr/share/nginx/html/index.html

In the `volumes` field, note that I have mapped two files: `default.conf` to change the default Nginx configuration and `index.html` to customize the default interface when accessing the Nginx web view.


The content of the `default.conf` file is as follows:

server {
listen 80 default_server;
listen [::]:80 default_server;

server_name _;
root /usr/share/nginx/html;

location / {
}
}


This is the content of the `index.html` file, which you can modify as needed:

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nginx</title>
</head>

<body>
<h1>This is custom index page</h1>
</body>

</html>


After that, run Docker Compose with the following command:

docker compose up -d


The result will be as follows:

If you found value in this post, show your appreciation by sharing and commenting!

Comments

Popular posts from this blog

Kubernetes Practice Series

NodeJS Practice Series

Docker Practice Series

React Practice Series

Sitemap

Setting up Kubernetes Dashboard with Kind

Deploying a NodeJS Server on Google Kubernetes Engine

DevOps Practice Series

Create API Gateway with fast-gateway

Explaining Async/Await in JavaScript in 10 Minutes