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 已经配置为一个静态资源服务器,可以高效地提供前端资源。

相关推荐
Zach_yuan1 小时前
深入浅出 JSONCpp
linux·服务器·网络·c++
AtoposのCX3301 小时前
Docker运行hello-world镜像失败或超时
运维·docker
马猴烧酒.1 小时前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库
熊延2 小时前
麒麟V10系统安装部署elasticsearch
linux·运维·服务器·elasticsearch·搜索引擎·全文检索
松涛和鸣3 小时前
72、IMX6ULL驱动实战:设备树(DTS/DTB)+ GPIO子系统+Platform总线
linux·服务器·arm开发·数据库·单片机
larance4 小时前
Gunicorn + Nginx+systemd 配置flask
nginx·flask·gunicorn
Yeats_Liao5 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
爱吃生蚝的于勒5 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
The森6 小时前
Linux IO 模型纵深解析 01:从 Unix 传统到 Linux 内核的 IO 第一性原理
linux·服务器·c语言·经验分享·笔记·unix
文艺理科生Owen6 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
运维·nginx