nginx文件服务修改autoindex.html增加文件搜索功能

本文介绍了如何在nginx的autoindex.html中添加文件搜索功能,通过JavaScript实现关键字搜索,允许用户根据输入的关键字快速定位到所需文件。同时也表达了对网络上开源资源的感激之情。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用nginx弄一个简单的文件下载服务,发现那个页面真的不好看,后来在网上搜到大家无私奉献的autoindex.html,自己又修改了几处颜色,包括背景图片,鼠标停留变色,看起来顺眼多了,但是还有一个关键的使用中的致命缺点:不能搜索文件名。在网上搜了搜,把以前忘掉的js回忆了回忆,修改如下:

找到document.body.innerHTML = '',改成document.body.innerHTML = '<center>输入关键字查找:<input type=text id=guanjianzi><input type=button onclick =cz() id=btn value=查找></center>'

这就增加了一个输入框用于输入关键字,增加了一个查找按钮,点击以后触发cz()方法

然后在外围加一个方法:

function cz() {
    //alert(document.getElementById("guanjianzi").value);
//找到输入的关键字
var guanjianzi=document.getElementById("guanjianzi").value;
//如果关键字不为空就开始搜索功能
if(""!=guanjianzi){
                
                //首先去掉关键字的空格
                guanjianzi=guanjianzi.replace(/\s+/g,"");
          

### 使用 Docker 部署 Nginx 作为文件服务器 #### 1. 准备工作 在开始之前,确保已经安装并运行了 Docker 环境。可以通过以下命令验证 Docker 是否正常工作: ```bash docker version ``` 如果没有安装 Docker,请先完成安装后再继续。 --- #### 2. 启动 Nginx 容器 通过 `docker run` 命令启动一个基础的 Nginx 容器,并将其端口映射到宿主机上[^1]。以下是基本命令: ```bash docker run --name nginx-file-server -p 8080:80 -v /host/path/to/files:/usr/share/nginx/html -d nginx ``` - `-p 8080:80`: 将容器内的 80 端口映射到宿主机的 8080 端口。 - `-v /host/path/to/files:/usr/share/nginx/html`: 将宿主机上的 `/host/path/to/files` 路径挂载到容器中的默认静态资源目录 `/usr/share/nginx/html` 中。 - `--name nginx-file-server`: 设置容器名称为 `nginx-file-server`。 - `-d`: 后台模式运行容器。 --- #### 3. 修改 Nginx 配置文件以支持文件浏览功能 为了让 Nginx 支持自动索引和显示文件列表,需要自定义其配置文件。可以按照以下方式操作: ##### (a) 创建自定义配置文件 在宿主机上创建一个新的配置文件 `default.conf`,内容如下[^4]: ```conf server { listen 80; server_name localhost; location / { autoindex on; # 开启目录索引 autoindex_exact_size off; # 显示文件大小时使用人类可读格式 autoindex_localtime on; # 显示本地时间而非 GMT 时间 charset utf-8; # 设置字符集编码为 UTF-8 root /usr/share/nginx/html; # 默认根目录 index index.html index.htm; # 默认首页文件名 } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } ``` ##### (b) 挂载自定义配置文件至容器 重新启动容器并将新的配置文件挂载进去[^3]: ```bash docker run --name nginx-file-server \ -p 8080:80 \ -v /path/to/host/default.conf:/etc/nginx/conf.d/default.conf \ -v /host/path/to/files:/usr/share/nginx/html \ -d nginx ``` --- #### 4. 编写自动化脚本简化流程 为了方便管理容器生命周期,可以编写一个简单的 Bash 脚本来实现启动、停止等功能[^2]。 ##### (a) 创建脚本 `start-nginx.sh` 编辑脚本内容如下: ```bash #!/bin/bash # 停止旧容器 docker stop web-nginx || true docker rm web-nginx || true # 启动新容器 docker run -d -p 8080:80 \ --name web-nginx \ -v $(pwd)/data:/usr/share/nginx/html \ -v $(pwd)/default.conf:/etc/nginx/conf.d/default.conf \ nginx ``` ##### (b) 给予脚本执行权限 ```bash chmod +x start-nginx.sh ``` ##### (c) 执行脚本 ```bash ./start-nginx.sh ``` --- #### 5. 测试服务 打开浏览器访问地址 `http://<your-host-ip>:8080`,应该能够看到指定路径下的文件列表以及下载链接。 --- ### 注意事项 - 如果遇到权限问题,可以在 `docker run` 命令中加入 `--privileged=true` 参数[^3]。 - 确保宿主机上的共享路径存在且有读取权限。 - 自定义配置文件的内容可以根据实际需求调整。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值