当前位置: 首页 > news >正文

Nginx静态资源部署

要在 Nginx 上部署静态资源,可以按照以下步骤进行操作:

  1. 确保已经安装并配置好 Nginx。如果还没有安装,可以参考 Nginx 的官方文档进行安装和配置。

  2. 将静态资源文件复制到 Nginx 的默认静态文件目录下。默认情况下,Nginx 的静态文件目录是 /usr/share/nginx/html/var/www/html。你可以将你的静态资源文件复制到这个目录下,或者根据需要修改 Nginx 的配置文件中的静态文件目录。

  3. 配置 Nginx 的虚拟主机或服务器块。打开 Nginx 的配置文件(通常是 /etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf),找到 server 块,并在其中添加以下配置:

server {listen 80;server_name example.com;root /usr/share/nginx/html;  # 静态文件目录的路径location / {try_files $uri $uri/ =404;}
}

在上面的配置中,listen 指定 Nginx 监听的端口,server_name 指定域名或 IP 地址,root 指定静态文件目录的路径,location 指定请求的处理规则。

  1. 保存并关闭配置文件,然后重新加载 Nginx 配置文件。可以使用以下命令来检查配置文件是否有语法错误:
sudo nginx -t

如果没有报错,重新加载 Nginx 配置文件:

sudo systemctl reload nginx
  1. 现在你可以通过浏览器访问你的静态资源了。在浏览器中输入你的域名或 IP 地址,Nginx 将会返回你的静态资源文件。

注意:如果你的静态资源文件包含其他文件类型(如图片、CSS、JavaScript 等),你可能需要在 Nginx 的配置文件中添加相应的 MIME 类型配置,以确保这些文件能够正确地被浏览器解析和加载。

Nginx静态资源的配置指令

以下是一些常用的 Nginx 配置指令,用于配置和优化静态资源的处理:

  1. root:指定静态文件的根目录。例如:
root /usr/share/nginx/html;
  1. location:指定请求的处理规则。可以使用 location 指令来匹配请求的 URL,并指定相应的处理方式。例如:
location /static {root /usr/share/nginx/html;
}

上述配置将匹配以 /static 开头的 URL,并从 /usr/share/nginx/html/static 目录下返回静态文件。

  1. try_files:指定尝试查找静态文件的顺序。可以使用 try_files 指令来指定查找静态文件的顺序,如果找不到则返回指定的错误码。例如:
location / {try_files $uri $uri/ =404;
}

上述配置将先尝试查找与请求 URL 匹配的文件,如果找不到则尝试查找以请求 URL 为前缀的目录,最后返回 404 错误码。

  1. expires:指定静态资源的过期时间。可以使用 expires 指令来设置静态资源的过期时间,以便浏览器缓存这些资源。例如:
location /static {root /usr/share/nginx/html;expires 7d;
}

上述配置将设置 /static 目录下的静态资源在客户端缓存 7 天。

  1. etag:指定静态资源的唯一标识符。可以使用 etag 指令来设置静态资源的唯一标识符,以便客户端在请求资源时进行缓存验证。例如:
location /static {root /usr/share/nginx/html;etag on;
}

上述配置将为 /static 目录下的静态资源生成唯一的标识符。

  1. gzip:启用 Gzip 压缩。可以使用 gzip 指令来启用对静态资源的 Gzip 压缩,以减小传输大小。例如:
location /static {root /usr/share/nginx/html;gzip on;gzip_types text/plain text/css application/javascript;
}

上述配置将对 /static 目录下的文本、CSS 和 JavaScript 文件进行 Gzip 压缩。

这些是一些常用的 Nginx 静态资源配置指令。你可以根据具体的需求和场景进行配置。另外,还有其他一些指令和模块可用于进一步优化静态资源的处理和缓存,例如 proxy_cache 模块用于启用反向代理缓存,fastcgi_cache 模块用于启用 FastCGI 缓存等。具体的配置语法和用法可以参考 Nginx 的官方文档。

静态资源缓存处理

Nginx 提供了多种方式来处理静态资源的缓存,以提高性能和减少对后端服务器的请求。以下是一些常用的静态资源缓存处理方式:

  1. Expires 头:通过设置 expires 指令,可以在响应头中添加 Expires 字段,指定静态资源的过期时间。例如:
location /static {root /usr/share/nginx/html;expires 7d;
}

上述配置将为 /static 目录下的静态资源设置过期时间为 7 天。当客户端第一次请求该静态资源时,Nginx 会将该资源返回,并在响应头中添加 Expires 字段,告诉客户端在 7 天内可以直接使用缓存的资源。

  1. Cache-Control 头:通过设置 add_header 指令,可以在响应头中添加 Cache-Control 字段,进一步控制静态资源的缓存行为。例如:
location /static {root /usr/share/nginx/html;add_header Cache-Control "public, max-age=604800";
}

上述配置将为 /static 目录下的静态资源设置 Cache-Control 头,指定缓存策略为公共缓存,最大缓存时间为 604800 秒(7 天)。

  1. Etag 头:通过设置 etag 指令,可以为静态资源生成唯一的标识符,并在响应头中添加 Etag 字段。例如:
location /static {root /usr/share/nginx/html;etag on;
}

上述配置将为 /static 目录下的静态资源生成唯一的标识符。当客户端再次请求该资源时,会将该标识符发送给服务器,服务器可以通过比较标识符来判断资源是否发生了变化,从而决定是否返回新的资源。

  1. Gzip 压缩:通过启用 gzip 指令,可以对静态资源进行 Gzip 压缩,减小传输大小。例如:
location /static {root /usr/share/nginx/html;gzip on;gzip_types text/plain text/css application/javascript;
}

上述配置将对 /static 目录下的文本、CSS 和 JavaScript 文件进行 Gzip 压缩。

这些是一些常用的静态资源缓存处理方式。你可以根据具体的需求和场景选择合适的方式进行配置。另外,还可以使用其他一些 Nginx 模块和指令来进一步优化静态资源的缓存,例如 proxy_cache 模块用于启用反向代理缓存,fastcgi_cache 模块用于启用 FastCGI 缓存等。具体的配置语法和用法可以参考 Nginx 的官方文档。

http://www.lryc.cn/news/94921.html

相关文章:

  • javaee jstl表达式
  • ChatGPT是否具有记忆能力?
  • ARP协议(地址分析协议)
  • c# websocket client java websocket server
  • 【玩转循环】探索Python中的无限可能性
  • 网安学习经历小记
  • MyBatis之慎用association
  • 【Java/大数据】Kafka简介
  • 【动手学深度学习】读写文件
  • http-server 的安装与使用
  • SQL高级教程
  • 9.pixi.js编写的塔防游戏(类似保卫萝卜)-群炮弹发射逻辑
  • 分布式链路追踪
  • 计算机网络————网络层
  • el-table刷新后保持高亮并改变状态字段
  • ARM Ubuntu内核更新记录
  • 【sgUploadTray】上传托盘自定义组件,可实时查看上传列表进度
  • 改进二进制粒子群算法在配电网重构中的应用(Matlab实现)【论文复现】
  • 【文章系列解读】Nerf
  • 基于springboot,vue网上订餐系统
  • Nautilus Chain 更换全新测试网,主网即将在不久上线
  • 攻防世界web:Web_php_wrong_nginx_config,python3后门
  • 【VUE】解决图片视频加载缓慢/首屏加载白屏的问题
  • spring复习:(35)在getBean时,在哪里根据普通bean和工厂bean进行区分处理来返回的?
  • Jenkins全栈体系(二)
  • c++11 标准模板(STL)(std::basic_istream)(九)
  • OpenSource - Spring Startup Ananlyzer
  • ES6迭代器、Set、Map集合和async异步函数
  • mac android studio设置跟mac系统一样的快捷键
  • Java-通过IP获取真实地址