У меня есть фрагмент, который я использую на всем своем веб-сайте, который отлично работает на статических веб-сайтах, но не так много на proxy_pass
веб-сайты.
Интересно, что я делаю не так, и как я могу безопасно включить свой фрагмент, не создав ресурсы 404?
Вот мой серверный блок
server {
server_name jenkins.fabrikam.com;
include /etc/nginx/location.conf; # All assets are 404 with this
location / {
proxy_pass http://localhost:8080;
include /etc/nginx/proxy_params;
}
}
Здесь location.conf
# cache.appcache, your document html and data
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
expires -1;
}
# Feed
location ~* \.(?:rss|atom)$ {
expires 1h;
add_header Cache-Control "public";
}
# Media: images, icons, video, audio, HTC
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
}
# CSS and Javascript
location ~* \.(?:css|js)$ {
expires 1y;
access_log off;
add_header Cache-Control "public";
}
# Prevent clients from accessing hidden files (starting with a dot)
# This is particularly important if you store .htpasswd files in the site hierarchy
# Access to `/.well-known/` is allowed.
# https://www.mnot.net/blog/2010/04/07/well-known
# https://tools.ietf.org/html/rfc5785
location ~* /\.(?!well-known\/) {
deny all;
}
# Prevent clients from accessing to backup/config/source files
location ~* (?:\.(?:bak|conf|dist|fla|in[ci]|log|psd|sh|sql|sw[op])|~)$ {
deny all;
}
# Remove useless acccess logs from these files
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
При использовании proxy_passing вы должны иначе думать о кешировании. Nginx документация есть раздел, посвященный кешированию прокси.
Таким образом, самый простой пример выглядит так:
http {
proxy_cache_path /data/nginx/cache keys_zone=one:10m;
server {
proxy_cache on;
location / {
proxy_pass http://localhost:8000;
}
}
}