Próbuję skonfigurować nginx, aby "static.domain.com" wyświetlało tylko obrazy. Oto, co wymyśliłem, ale wiem, że można to zrobić bardziej efektywnie. Chcę serwować 403.html, jeśli ktoś próbuje uzyskać dostęp do plików .htm, .php, directory (cokolwiek innego, czego mi brakuje?). Oczywiście, z wyjątkiem plików 403.htm i static.htm.nginx - służą tylko obrazy
Jakieś pomysły, w jaki sposób mogę to właściwie zabezpieczyć?
server {
listen xx.xx.xx.xx:80;
server_name static.domain.com;
root /www/domain.com/httpdocs;
index static.htm;
access_log off;
error_log /dev/null crit;
error_page 403 /403.html;
# Disable access to .htaccess or any other hidden file
location ~ /\.ht {
deny all;
}
location ~* \.php {
deny all;
}
# Serve static files directly from nginx
location ~* \.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|exe|html|htm|txt|css|js) {
add_header Cache-Control public;
add_header Cache-Control must-revalidate;
expires 7d;
}
}
To takie proste? nic więcej nie jest potrzebne? –
Powinienem oczywiście przetestować to na pewno, ponieważ nie uruchomiłem tego, co tam napisałem. Lokalizacja ~ * \. (Jpg | jpeg | gif | png ...) pasuje do wszystkich wymienionych tam typów rozdzielonych rurami, jeśli nie, to pasuje do "/", ponieważ "/" pasuje do wszystkiego. –
OK, to nie zadziała, ponieważ w FireFox każdy dostęp do pliku .php umożliwia użytkownikowi pobranie pliku (wyświetla monit o pobranie). –