Ho diversi set di file statici .html
sul mio server, e vorrei usare nginx per servirli direttamente. Ad esempio, nginx dovrebbe servire un URI del seguente schema:Usa nginx per servire file statici da sottodirectory di una determinata directory
www.mysite.com/public/doc/foo/bar.html
con il file .html
che si trova a /home/www-data/mysite/public/doc/foo/bar.html
. Puoi pensare a foo
come nome del set e bar
come nome del file qui.
Mi chiedo se il seguente pezzo di configurazione nginx farebbe il lavoro:
server {
listen 8080;
server_name www.mysite.com mysite.com;
error_log /home/www-data/logs/nginx_www.error.log;
error_page 404 /404.html;
location /public/doc/ {
autoindex on;
alias /home/www-data/mysite/public/doc/;
}
location = /404.html {
alias /home/www-data/mysite/static/html/404.html;
}
}
In altre parole, tutte le richieste del modello /public/doc/.../....html
stanno per essere gestita da nginx, e se un dato URI non è trovato, viene restituito un valore predefinito www.mysite.com/404.html
.
grazie per il suggerimento! una domanda però, devo usare regex come '^ (/ public/doc /)' qui? O '/ public/doc /' va bene? – MLister
just/public/doc/è sufficiente in questo caso, e in realtà leggermente migliore dato che non aggiunge il (piccolo) onere aggiuntivo della corrispondenza regex – cobaco