Nginx Basics — DevOps

Apa itu Nginx? Nginx (dibaca "engine-x") adalah web server yang juga bisa berfungsi sebagai reverse proxy, load balancer, dan HTTP cache. Dikenal sangat cepat d

Apa itu Nginx?

Nginx (dibaca "engine-x") adalah web server yang juga bisa berfungsi sebagai reverse proxy, load balancer, dan HTTP cache. Dikenal sangat cepat dan efisien untuk menangani banyak koneksi.

Instalasi & Perintah Dasar

# Install
sudo apt install nginx

# Kelola service
sudo systemctl start nginx
sudo systemctl reload nginx    # reload config tanpa downtime
sudo systemctl restart nginx

# Test konfigurasi sebelum reload
sudo nginx -t

Konfigurasi Dasar

# /etc/nginx/sites-available/my-app
server {
    listen 80;
    server_name myapp.com www.myapp.com;

    root /var/www/my-app/public;
    index index.html index.php;

    # Logging
    access_log /var/log/nginx/myapp-access.log;
    error_log /var/log/nginx/myapp-error.log;

    # Static files
    location /assets/ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }

    # SPA fallback
    location / {
        try_files $uri $uri/ /index.html;
    }
}

Enable Site

# Symlink ke sites-enabled
sudo ln -s /etc/nginx/sites-available/my-app /etc/nginx/sites-enabled/

# Test & reload
sudo nginx -t && sudo systemctl reload nginx

Konfigurasi PHP (Laravel)

server {
    listen 80;
    server_name api.myapp.com;
    root /var/www/api/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Yang akan kamu pelajari