Pada konfigurasi Nginx, blok `location {}` digunakan untuk mengatur bagaimana server web akan menangani permintaan yang sesuai dengan pola URL tertentu. Ada banyak opsi yang dapat Anda atur dalam blok `location {}` untuk mengontrol perilaku Nginx dalam menangani permintaan. Berikut adalah beberapa opsi umum yang dapat diatur dalam blok `location {}`:
1. `location /path/to/resource {}`: Ini adalah pola dasar yang menentukan lokasi di mana konfigurasi akan berlaku. Anda dapat menggunakan pola seperti `/` untuk mengatur konfigurasi yang berlaku untuk seluruh situs web atau `/path/to/resource` untuk mengatur konfigurasi yang hanya berlaku untuk URL yang cocok dengan pola tersebut.
2. `proxy_pass`: Mengarahkan permintaan ke server backend. Misalnya:
```nginx
location /api/ {
proxy_pass http://backend_server;
}
```
3. `root` dan `alias`: Menentukan direktori root untuk menemukan file yang sesuai dengan permintaan. Perbedaan utamanya adalah `alias` mengganti bagian dari URL dengan direktori root. Misalnya:
```nginx
location /images/ {
alias /path/to/images/;
}
```
4. `try_files`: Menentukan bagaimana Nginx harus mencoba mencari file dalam direktori. Misalnya:
```nginx
location /static/ {
try_files $uri $uri/ /index.html;
}
```
5. `rewrite`: Mengubah URL sebelum diproses lebih lanjut. Misalnya:
```nginx
location /old/ {
rewrite ^/old/(.*)$ /new/$1 permanent;
}
```
6. `if`: Menggunakan kondisi logika untuk mengatur perilaku. Namun, penggunaan `if` harus berhati-hati karena dapat memengaruhi kinerja Nginx. Contoh:
```nginx
location /download/ {
if ($args ~* "type=pdf") {
add_header Content-Disposition "attachment";
}
}
```
7. `proxy_set_header`: Mengatur header yang akan dikirim ke server backend saat menggunakan `proxy_pass`. Misalnya:
```nginx
location /api/ {
proxy_pass http://backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
```
8. `auth_basic` dan `auth_basic_user_file`: Mengaktifkan autentikasi dasar HTTP untuk URL tertentu. Misalnya:
```nginx
location /admin/ {
auth_basic "Restricted Area";
auth_basic_user_file /path/to/htpasswd;
}
```
9. `limit_req` dan `limit_conn`: Mengontrol pembatasan laju permintaan dan koneksi ke lokasi tertentu. Misalnya:
```nginx
location /api/ {
limit_req zone=api_rate_limit burst=5;
limit_conn api_conn_limit 10;
}
```
10. `expires` dan `add_header`: Mengatur header HTTP seperti `Cache-Control` dan `Expires` untuk mengontrol caching konten. Misalnya:
```nginx
location /static/ {
expires 7d;
add_header Cache-Control "public, max-age=604800";
}
```
Ini hanya beberapa contoh opsi yang dapat diatur dalam blok `location {}` pada konfigurasi Nginx. Anda dapat menggabungkan opsi ini sesuai dengan kebutuhan Anda untuk mengontrol perilaku Nginx saat menangani permintaan yang cocok dengan pola URL tertentu.