Cara Install Nginx Dari Repo Resmi



Instalasi

  • Install tools yang dibutuhkan
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring -y

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

gpg --dry-run --quiet --no-keyring --import --import-options import-show \
    /usr/share/keyrings/nginx-archive-keyring.gpg

  • Pastikan fingerprint muncul:
573B FD6B 3D8F BC64 1079  A6AB ABF5 BD82 7BD9 BF62


echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | sudo tee /etc/apt/preferences.d/99nginx

  • Update & install nginx
sudo apt update
sudo apt install nginx -y

  • Cek versi
nginx -v

  • Jalankan nginx
systemctl start nginx
systemctl enable nginx


Settingan File nginx.conf Powerfull


Ini adalah settingan konfigurasi file nginx.conf yang sering saya gunakan untuk produksi. Letak filenya pada direktory  /etc/nginx/nginx.conf

Sudah saya uji pada 4 threads cpu AMD Ryzen 9 7950X sanggup menghandle 20000 koneksi bersamaan.

Fungsinya :
user  nginx;
worker_processes auto;

# buang error log (langsung ke /dev/null)
error_log /dev/null crit;
pid        /run/nginx.pid;

events {
    worker_connections  8192;
    multi_accept on;
    use epoll;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    # matikan semua log
    access_log off;

    # optimasi koneksi
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;

    keepalive_timeout 10;
    keepalive_requests 5000;

    server_tokens off;
    types_hash_max_size 2048;

    # matikan cache & gzip
    proxy_buffering off;
    proxy_cache off;
    gzip off;

    include /etc/nginx/conf.d/*.conf;
}


Jangan lupa terapkan :

nginx -t
systemctl reload nginx


Catatan Tambahan

Berikut catatan settingan proxy file yang lokasinya berada pada directory /etc/nginx/conf.d/

Contoh settingan proxy include koneksi websocket

server {
    listen 80;
    server_name domain-kamu.com;

    location / {
        proxy_pass http://127.0.0.1:8080;

        # Tambahan untuk optimasi proxy
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}


Contoh settingan proxy tanpa websocket

server {
    listen 80;
    server_name domain-kamu.com;

    location / {
        proxy_pass http://127.0.0.1:8080;

        # Header standar proxy
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}


Contoh settingan proxy domain wilcard

server {
    listen 80;
    server_name 
        *.domain1.com 
        *.domain2.com 
        *.domain3.com 
        *.domain4.com

    location / {
        proxy_pass http://127.0.0.1:8080;

        # Header standar proxy
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}