Cara Menggunakan NGINX dengan Docker dan Docker Compose
Halo, teman-teman! Kali ini kita bakal bahas tentang cara menggunakan NGINX dengan Docker dan Docker Compose. Buat kalian yang belum tau, NGINX tuh web server yang keren banget, bisa buat nge-host website, reverse proxy, load balancer, dan banyak lagi. Nah, Docker dan Docker Compose tuh tools yang bikin kita bisa nge-deploy aplikasi dengan gampang dan konsisten di berbagai lingkungan. Yuk, kita mulai!
1. Instalasi Docker dan Docker Compose
Pertama-tama, pastiin dulu kalian udah punya Docker dan Docker Compose di komputer kalian. Kalo belum, kalian bisa download dan install dari situs resmi Docker.
2. Buat Direktori Proyek
Buat direktori baru buat proyek kalian. Misalnya, kita buat direktori dengan nama nginx-docker
.
mkdir nginx-docker
cd nginx-docker
3. Buat File Dockerfile
Di dalam direktori nginx-docker
, buat file dengan nama Dockerfile
(tanpa ekstensi). Isi file ini dengan konfigurasi buat NGINX.
FROM nginx:alpine
COPY nginx.conf /etc/nginx/nginx.conf
COPY index.html /usr/share/nginx/html/index.html
Penjelasan:
FROM nginx:alpine
: Pakai image NGINX versi Alpine (versi ringan).COPY nginx.conf /etc/nginx/nginx.conf
: Salin filenginx.conf
ke direktori/etc/nginx/
di dalam container.COPY index.html /usr/share/nginx/html/index.html
: Salin fileindex.html
ke direktori/usr/share/nginx/html/
di dalam container.
4. Buat File nginx.conf
Buat file nginx.conf
di direktori yang sama. Ini adalah file konfigurasi NGINX.
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
5. Buat File index.html
Buat file index.html
di direktori yang sama. Ini adalah halaman web sederhana yang bakal ditampilkan oleh NGINX.
<!DOCTYPE html>
<html>
<head>
<title>NGINX with Docker</title>
</head>
<body>
<h1>Hello, NGINX with Docker!</h1>
</body>
</html>
6. Buat File docker-compose.yml
Buat file docker-compose.yml
di direktori yang sama. Ini adalah file konfigurasi Docker Compose.
version: '3.8'
services:
nginx:
build: .
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./index.html:/usr/share/nginx/html/index.html
Penjelasan:
build: .
: Build image dariDockerfile
di direktori saat ini.ports: - "80:80"
: Expose port 80 dari container ke port 80 di host.volumes
: Mount filenginx.conf
danindex.html
ke dalam container.
7. Build dan Jalankan dengan Docker Compose
Sekarang, kita bisa build dan jalankan container NGINX dengan Docker Compose.
docker-compose up --build
Setelah perintah ini dijalankan, Docker Compose bakal build image dan menjalankan container NGINX. Kalian bisa akses NGINX di browser dengan membuka http://localhost
.
8. Cek Logs
Kalo kalian mau liat logs dari container NGINX, kalian bisa pake perintah:
docker-compose logs
9. Stop Container
Kalo kalian mau stop container, kalian bisa pake perintah:
docker-compose down
10. Custom Konfigurasi NGINX
Kalo kalian mau nambahin custom konfigurasi NGINX, kalian bisa nambahin file konfigurasi di direktori conf.d
di dalam container. Misalnya, kalian bisa buat file default.conf
di direktori proyek kalian, lalu mount ke /etc/nginx/conf.d/default.conf
di dalam container.
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
Kesimpulan
Nah, gampang kan? Dengan Docker dan Docker Compose, kita bisa nge-deploy NGINX dengan mudah dan konsisten. Kalian bisa nge-custom konfigurasi NGINX sesuai kebutuhan kalian. Selamat mencoba!