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

相关推荐
哈德森hh13 小时前
我的 Twitter 自动化运营流程
运维·自动化·twitter
ElevenS_it18813 小时前
连锁门店IT运维监控实战:200+门店网络设备+POS统一纳管+按区域分组告警路由完整配置(Zabbix Proxy架构)
运维·网络·架构·zabbix
dualven_in_csdn13 小时前
mqtt消息及日志查看
linux·运维·服务器
呉師傅13 小时前
东芝e-STUDIO 3525ac提示黄色和品红色墨粉盒在耗尽前被更换。请重新插入之前的墨粉盒并用至耗尽如何操作
运维·windows·电脑
都在酒里13 小时前
Linux字符设备驱动开发(四):进入硬件世界——GPIO子系统与LED设备驱动
linux·运维·驱动开发
Yupureki13 小时前
《MySQL数据库基础》9.索引原理
linux·运维·服务器·网络·数据库·mysql
2301_8090511414 小时前
Linux TCP 和 UDP 通信
linux·运维·tcp/ip
Qt程序员14 小时前
从上电到系统就绪:ARM+U-Boot 嵌入式 Linux 启动流程
linux·运维·c++·内核·设备树·嵌入式·ram
Yupureki14 小时前
《MySQL数据库基础》8.复合查询
linux·运维·服务器·网络·数据库·mysql
方芯半导体14 小时前
ST系列MCU EtherCAT协议栈框架结构详解
服务器·网络·数据库·网络协议·机器人·自动化·工业以太网