标签归档:文件服务器

Windows环境上使用Nginx1.26.2最新稳定版本,做一个列表式样的文件服务器 2024-10-23

前缀、文档修改记录

20211213 初始化编辑此文章,完稿,Nginx 1.20.2稳定版本
20241023 更新此文章,更新,Nginx 1.26.2稳定版本

章节1、需求描述

在Windows系统环境下,使用最新的Nginx for Windows稳定版本(时间戳2024-10-23 Nginx版本号1.26.2),做一个文件服务器。

在2024-10-23,增加Nginx的文件服务器的访问验证,需要用户名密码才能看到文件清单。

章节2、环境

Nginx官网下载页面 http://nginx.org/en/download.html

章节3、操作步骤

下载Windows环境的最新稳定版本的压缩包,解压,增加一个文件夹,sites-enabled,用于存放自定义站点的conf配置文件,增加一个文件夹,certs,用于存放站点的证书文件。

此外,增加一个documents文件夹,这个是我自己用来放文件的。

修改配置文件 conf\nginx.conf,增加一个自定义目录的引用

// 绝对路径
include "C:/Users/Administrator/Downloads/nginx-1.26.2/sites-enabled/*.conf";
或者
// 相对路径
include ./sites-enabled/*.conf;

增加一个文件服务器的自定义站点配置文件 sites-enabled\http.conf

在该文件中写入如下的配置文件

server {
    listen       0.0.0.0:4433;
    server_name  WebServer;

    charset UTF-8;

    location / {
	auth_basic "Auth Login";
        auth_basic_user_file "./passwd.dat";
		
        root "./documents";
        index index.html;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
    }
}

其中密码文件,可以用htpasswd或者openssl来生成密码,写入对应的密码保存文件即可,且比较推荐用openssl,因为这个很多Linux主机,都是默认安装了的。

root@server# openssl passwd -apr1
Password: 
Verifying - Password: 
$apr1$rtk/C2Aa$eXaamdfTgCU0AXLpmF.vH/
root@server#

// 将生成的密钥对字符串,写入到passwd.dat文件即可,我这里,把这个文件,放在nginx.exe同目录下。
写入格式为:
用户名:加密后的密码字符串

即:
user:$apr1$rtk/C2Aa$eXaamdfTgCU0AXLpmF.vH/

参数
-apr1(数字):apache中使用的备选md5算法代号,不能和"-1"选项一起使用,因为apr1本身就默认了md5。htpasswd工具生成的身份验证密码就是此方法。

$为分隔符号
$apr1$ 为 哈希类型
$rtk/C2Aa$ 为 加密密码时使用的随机salt
$eXaamdfTgCU0AXLpmF.vH/ 为 实际的密码哈希
openssl passwd -apr1 -salt "rtk/C2Aa" "pass12341234"
$apr1$rtk/C2Aa$eXaamdfTgCU0AXLpmF.vH/
// 如果操作系统为 Debian/Ubuntu
root@server#  apt update
root@server#  apt-get install apache2-utils  
// 如果操作系统为 CentOS
root@server#  yum update
root@server#  yum install httpd

// 使用htpasswd生成密钥对
root@server#  htpasswd -nbm user pass12341234
user:$apr1$vwSnVnJX$2QwvQqUcKV/uSfkjFZc3i/
root@server#

参数
# -c 创建一个加密文件,后面衔接的是写入的密码文件路径和名称
# -n 不更新文件,在标准输出上显示结果
# -b 在htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码
# -m 强制对密码进行MD5加密
# -D 删除指定的用户,后面衔接的是写入的密码文件路径和名称 + 需要删除的用户

// 将生成的密钥对字符串,写入到passwd.dat文件即可,我这里,把这个文件,放在nginx.exe同目录下。
密码文件
密码文件的位置

在CMD终端中,cd到nginx.exe所在的目录下,开启Nginx

nginx.exe -t          // 检查Nginx配置
start nginx.exe       // 启动Nginx
nginx.exe -s stop // 如果需要停止
启动nginx的命令

从本地访问服务器的Web,就提示要用户名、密码了,输入正确的用户名和密码即可访问。

列表式样的文件页面

附录1、视频操作演示

000041  Windows环境上使用Nginx 1.20.2最新稳定版本,做一个文件服务器 20211213
博客 https://dasmz.com/?p=891
视频 https://youtu.be/EjrtzDbdPhg

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨