前缀、文档修改记录
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 // 如果需要停止
从本地访问服务器的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