Untuk server NGINX saya, saya memiliki server virtual yang diatur hanya untuk mengeluarkan konten statis. Saat ini saya sedang mencoba mengaturnya agar gambar memiliki tanggal kedaluwarsa. Namun, ketika saya membuat arahan lokasi untuk ini, semuanya hanya menghasilkan 404.
Konfigurasi saya sekarang terlihat seperti ini:
/srv/www/static.conf
server {
listen 80;
server_name static.*.*;
location / {
root /srv/www/static;
deny all;
}
location /images {
expires 1y;
log_not_found off;
root /srv/www/static/images;
}
}
Catatan, file ini disertakan dari /etc/nginx/nginx.conf, di dalam direktif http
Saya mencoba untuk mengakses gambar, di, katakanlah ... static.example.com/images/screenshots/something.png
. Benar saja, gambar juga ada di /srv/www/static/images/screenshots/something.png
. Namun, pergi ke alamat mengatakan tidak berfungsi dan hanya memberitahu saya 404 Tidak Ditemukan .
Namun, jika saya menghapus location /images
dan mengubah location /
yang berikut ...
location / {
root /srv/www/static;
}
Berhasil! Apa yang saya lakukan salah di sini?
sumber
root
di dalamlocation
adalah praktik yang buruk, bagaimana mereka mendonasikannya sendiri di docs / http / ngx_http_core_module.html # alias ? (lihat di mana dikatakan " lebih baik menggunakan direktif root sebagai gantinya ") KOREKSI : oke, sepertinya apa yang salah adalah mendefinisikan root utama di suatu lokasi, bukan sembarang root