Nginx 目录浏览功能显示的日期格式设置为数字

在 Nginx 中,默认的目录浏览功能显示的日期格式包含英文月份,若想将其显示为数字月份,需要对 Nginx 的 autoindex 模块输出进行自定义处理。

由于 Nginx 本身没有直接配置将日期格式化为数字月份的选项,所以可以借助 Lua 脚本结合 ngx_http_lua_module 模块来实现这个需求。

步骤如下

  1. 确认 ngx_http_lua_module 模块已安装 首先要保证 Nginx 已经安装了 ngx_http_lua_module 模块。

你可以通过以下命令查看 Nginx 编译时的配置参数:

Lua 复制代码
nginx -V 2>&1 | grep lua

若输出包含 lua 相关信息,说明该模块已安装;

若没有,你需要重新编译 Nginx 并添加 --with-http_lua_module 选项。

使用豆包问:

已经安装的nginx,如何重新编译 Nginx 并添加 --with-http_lua_module 选项。

  1. 创建 Lua 脚本 在合适的目录(例如 /etc/nginx/lua)下创建一个 Lua 脚本,如 format_autoindex.lua,内容如下:
Lua 复制代码
-- 读取原始的 autoindex 输出
local html = ngx.arg[1]
-- 使用正则表达式替换日期格式
html = string.gsub(html, "(%d+)-(%a+)-(%d+)", function(day, month, year)
    local months = {
        Jan = "01", Feb = "02", Mar = "03", Apr = "04",
        May = "05", Jun = "06", Jul = "07", Aug = "08",
        Sep = "09", Oct = "10", Nov = "11", Dec = "12"
    }
    return string.format("%s-%s-%s", year, months[month], day)
end)
-- 输出处理后的 HTML
ngx.arg[1] = html
  1. 修改 Nginx 配置文件 在 Nginx 配置文件里添加对 Lua 脚本的调用,示例如下:
Lua 复制代码
server {
    listen 80;
    server_name your_domain_or_ip;

    location /gp/ {
        autoindex on;
        # 在输出之前执行 Lua 脚本
        header_filter_by_lua_file /etc/nginx/lua/format_autoindex.lua;
    }
}

要把 your_domain_or_ip 替换为实际的域名或者 IP 地址。

  1. 检查并重新加载 Nginx 配置 执行以下命令检查配置文件语法是否正确:
Lua 复制代码
nginx -t

若语法检查通过,重新加载 Nginx 配置:

Lua 复制代码
systemctl reload nginx
相关推荐
冰封之寂7 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算
小柯南敲键盘8 小时前
图片翻译API接入与自动化实现指南
运维·python·自动化
云计算磊哥@8 小时前
运维开发宝典058-大型网站nginx服务器管理全集4
服务器·nginx·运维开发
952369 小时前
Docker - 基础
运维·后端·docker·容器
Promise微笑9 小时前
智能激光清障仪选型指南:高效运维与安全保障的关键考量
运维·安全
Code_Ignis9 小时前
docker国内可用源(持续维护)
运维·docker·容器
一叶龙洲9 小时前
向日葵远程Ubuntu,支持隐私屏
linux·运维·ubuntu
酷可达拉斯9 小时前
Linux操作系统-shell编程之Grep与正则表达式
linux·运维·服务器·正则表达式·centos
我星期八休息12 小时前
网络编程—UDP与TCP
linux·运维·网络·数据库·网络协议·tcp/ip·udp
Jerry小杰15 小时前
运维神器|单端口搞定多台内网SSH!frp端口复用终极教程
运维·ssh