在Nginx配置中优化静态资源加载可以通过以下几个方面来实现:
Gzip压缩可以显著减少传输数据的大小,从而加快加载速度。
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
通过设置缓存,可以减少对服务器的请求次数,提高加载速度。
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public";
}
HTTP/2可以显著提高多路复用和头部压缩的效率。
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /path/to/certificate.pem;
ssl_certificate_key /path/to/privatekey.pem;
# 其他配置...
}
将静态资源放在CDN上可以减少服务器的负载,并且可以利用CDN的全球分布特性加快资源加载速度。
location /static/ {
proxy_pass http://cdn.example.com/static/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
通过合并和压缩CSS和JavaScript文件,可以减少HTTP请求的数量和传输的数据量。
location ~* \.(css|js)$ {
gzip on;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
Keep-Alive可以减少TCP连接的建立和关闭次数,提高性能。
http {
keepalive_timeout 65;
keepalive_requests 100;
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
}
使用适当的图片格式(如WebP)和压缩工具来减小图片文件的大小。
location ~* \.(jpg|jpeg|png)$ {
expires 30d;
add_header Cache-Control "public";
try_files $uri $uri/ =404;
}
如果服务器和客户端都支持HTTP/3,可以进一步提高性能。
server {
listen 443 ssl http3;
server_name example.com;
ssl_certificate /path/to/certificate.pem;
ssl_certificate_key /path/to/privatekey.pem;
# 其他配置...
}
通过以上这些配置,可以显著优化Nginx中静态资源的加载速度。根据具体需求和服务器环境,可以选择合适的优化策略。