Nginx配置静态资源服务器

0. 引言

本文主要介绍如何使用Nginx配置静态资源服务器,实现可以在任意地方访问你的网页,包括相关配置等教学,有什么遗漏或者更好的方案希望大家积极留言,长期更新。

1. 安装 Nginx

  • 如果尚未安装 Nginx,可以使用以下命令安装:
plain 复制代码
<!----># 在 Debian/Ubuntu 系统上
sudo apt update                         -- 刷新软件源列表,确保安装的是最新版本的软件
sudo apt install nginx                  -- 下载并安装nginx web服务器及其所有依赖项

# 在 CentOS/RHEL 系统上
sudo yum install nginx                  -- yum会自动处理依赖关系和更新软件源,所以不需要单独的update命令
  • 安装过程如下
    • 出现下述提示输入 y 然后回车
    • 出现下述绿色字样即安装成功

2. 配置 Nginx 静态资源服务器

假设你的静态资源存放在 /var/www/static 目录中,并且你希望通过 http://static.example.com 访问这些资源。

步骤 1:创建 Nginx 配置文件

在 /etc/nginx/sites-available/ 或 /etc/nginx/conf.d/ 目录下创建一个新的配置文件,例如 static.conf:

plain 复制代码
sudo nano /etc/nginx/conf.d/static.conf
步骤 2:添加静态资源服务器的配置

在配置文件中添加以下内容:

plain 复制代码
server {
    listen 80;
    server_name static.example.com;

    # 指定静态资源的根目录
    root /var/www/static;

    # 默认的首页文件
    index index.html;

    # 配置请求处理
    location / {
        try_files $uri $uri/ =404;
    }

    # 设置缓存控制
    location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 30d;
        add_header Cache-Control "public";
    }

    # 启用gzip压缩
    gzip on;
    gzip_types text/css application/javascript image/svg+xml;
    gzip_proxied any;
    gzip_vary on;
}
  • 解释 :
    • listen 80;:服务器监听 80 端口。
    • server_name static.example.com;:服务器名称(域名),根据实际情况修改。
    • root /var/www/static;:静态资源的根目录。确保目录存在并包含资源文件。
    • index index.html;:默认的首页文件。
    • location / { try_files $uri $uri/ =404; }:尝试加载请求的文件,如果找不到文件,则返回 404 错误。
    • location ~* .(jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; add_header Cache-Control "public"; }:为常见的静态文件类型设置缓存,缓存时间为 30 天。
    • gzip on;:启用 gzip 压缩,减少静态资源的传输大小,提高加载速度。
步骤 3:启用配置并重启 Nginx

保存并退出编辑器后,检查 Nginx 配置是否正确:

plain 复制代码
sudo nginx -t

如果配置无误,重启 Nginx 以应用更改:

plain 复制代码
sudo systemctl restart nginx

3. 测试服务器

现在,你可以在浏览器中访问 http://static.example.com,Nginx 将会提供位于 /var/www/static 目录下的静态资源。

4. 进一步优化(可选)

  • 使用 HTTPS:为站点配置 SSL 证书以启用 HTTPS。
  • 配置 CDN:通过 CDN 加速全球用户的访问。
  • 更多缓存优化:根据文件类型和更新频率优化缓存策略。

通过以上步骤,Nginx 已经配置为一个静态资源服务器,可以高效地提供前端资源。

相关推荐
可乐ea9 小时前
智能体记忆该拆成几层:笔记、记忆表示与注入上下文
服务器·数据库·笔记·ai智能体·提示词工程·上下文工程·记忆系统
分布式存储与RustFS13 小时前
群晖 NAS 被 C3RB3R 锁了:本地备份一起被加密,RustFS 对象锁为什么删不掉
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
真好啊又活了一天13 小时前
服务器和虚机配置IPV6
运维·服务器·github
zixu_star14 小时前
定时任务是什么?从日常自动化到 AI 应用,软件如何自动执行任务?
运维·人工智能·自动化
AR-26710-14 小时前
Linux Day33——定时任务+lvm
linux·运维
墨痕诉清风14 小时前
SSRF漏洞实战记录+OSS桶命令执行+MCP漏洞
linux·服务器·数据库
润滑卫士15 小时前
液压系统工作粘度窗口等级选型:泵允许粘度范围与油温-粘度匹配计算
运维
布莱克60515 小时前
Swift 常量详解:从 let 到编译期优化
服务器·开发语言·ssh·swift·常量·let
Csvn15 小时前
Nginx 配置语法与上下文:一次搞懂继承、变量与用 map 替掉 if
后端·nginx
测试界的小码农17 小时前
【Linux 命令实战(04):文件内容查看,掌握 cat、less、head、tail】
linux·服务器·less