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;
}
}