Tôi muốn lưu trữ một số tệp tĩnh bằng Nginx. Nhưng tôi bằng cách nào đó không thể làm cho nó hoạt động.
Đây là của tôi nginx.conf
:
dữ liệu www của người dùng;
worker_processes tự động;
pid /run/nginx.pid;
bao gồm /etc/nginx/modules-enabled/*.conf;
sự kiện {
công_nhân kết_nối 768 ;
#multi_accept on;
}
http {
#GZIP
bật gzip;
bật gzip_vary;
gzip_proxied bất kỳ;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
ứng dụng gzip_types/ứng dụng javascript/ứng dụng json/ứng dụng ld+json/phông chữ xml/phông chữ eot/phông chữ otf/văn bản ttf/văn bản css/văn bản javascript/văn bản thuần túy/xml;
# MAY CHỦ
người phục vụ {
nghe 80;
server_name example.com;
nếu ($http_host ~* ^www\.(.*)$ )
{
trả lại 301 https://$1$request_uri;
}
trả lại 301 https://$http_host$request_uri;
}
người phục vụ {
nghe 443 ssl;
nếu ($http_host ~* ^www\.(.*)$ )
{
trả về 301 $scheme://$1$request_uri;
}
#SSL
ssl_certificate /root/.acme.sh/example.com/fullchain.cer;
ssl_certificate_key /root/.acme.sh/example.com/example.com.key;
server_name example.com;
# Chuyển tất cả lưu lượng truy cập vào ứng dụng web của tôi
địa điểm / {
proxy_set_header Máy chủ lưu trữ $host;
proxy_pass http://localhost:8080;
}
#Bộ nhớ đệm của trình duyệt
vị trí ~* \.(js|css)$ {
hết 180đ;
add_header Pragma "công khai";
add_header Kiểm soát bộ đệm "công khai";
}
vị trí ~* \.(jpg|jpeg|png|webp|woff|woff2|ttf)$ {
hết hạn 365d;
add_header Pragma "công khai";
add_header Kiểm soát bộ đệm "công khai";
}
}
}
Vấn đề nằm ở phần "Bộ nhớ đệm của trình duyệt". Khi kích hoạt khối mã này, trang web của tôi sẽ tải, nhưng tất cả các tệp css, tệp javascript và hình ảnh đều trả về lỗi 404. Có vẻ như các tệp đó đang bỏ qua trang web của tôi địa điểm /
.
Tôi đã có thể giải quyết vấn đề này bằng cách sao chép/dán
proxy_set_header Máy chủ lưu trữ $host;
proxy_pass http://localhost:8080;
trong tất cả của tôi địa điểm
-blocks, nhưng điều đó không thực sự tao nhã và thực sự khiến trang web của tôi chậm hơn rất nhiều...
Tôi cũng đã cố gắng di chuyển hai địa điểm
-blocks cho bộ nhớ đệm của trình duyệt trong khối địa điểm \
vì vậy cái sau sẽ đóng vai trò là 'cha mẹ'. Nhưng điều đó không có khả năng xảy ra hành vi của hình ảnh, v.v. trả về 404.
Làm cách nào để định cấu hình bộ nhớ đệm của các tệp tĩnh trong Nginx?
Chỉnh sửa:
Tôi đã thêm những điều sau đây vào http
-chặn:
bản đồ $uri $cache_control {
~/Trang web/nội dung/phương tiện/hình ảnh "công khai, không chuyển đổi";
}
bản đồ $uri $hết hạn {
~/Trang web/tài sản/phương tiện/hình ảnh 365d;
}
Đã thêm phần sau vào của tôi người phục vụ
-chặn:
hết hạn $ hết hạn;
add_header Kiểm soát bộ đệm $cache_control;
Không có gì được lưu trữ.