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 小时前
Linux指令篇(一)
linux·运维·服务器
睡不醒的猪儿7 小时前
nginx常见的优化配置
运维·nginx
我要升天!7 小时前
Linux中《网络基础》
linux·运维·网络
国强_dev7 小时前
在数据库开发和运维中的“错误信息误导(Red Herring)”
运维·adb·数据库开发
安科瑞刘鸿鹏178 小时前
工业自动化系统中抗晃电保护的协同控制研究
运维·网络·嵌入式硬件·物联网
ZStack开发者社区8 小时前
ZStack Cloud 5.5.0正式发布
运维·服务器·网络
草莓熊Lotso8 小时前
脉脉独家【AI创作者xAMA】|当豆包手机遭遇“全网封杀”:AI学会操作手机,我们的饭碗还保得住吗?
运维·开发语言·人工智能·智能手机·脉脉
三不原则8 小时前
银行 AIOps 实践拆解:金融级故障自愈体系如何搭建
大数据·运维
晴天¥9 小时前
VMware+Oracle linux LVM/非LVM磁盘扩容
linux·运维·服务器
醇氧10 小时前
Ping 127.0.0.1 具有 32 字节的数据:一般故障。【二】
运维·服务器·开发语言