配置FTP目录文件以http网址方式访问并下载

1、功能例图

2、配置nginx进行转发

首先在linux服务器上配置 nginx 进行访问存放文件的服务器地址,

例如:我本地是 /home/enjoy/files/ 作为文件目录

在linux上安装 nginx 后可进行代码文件地址,

安装步骤如下:

复制代码
# 1. 安装依赖
yum install -y gcc gcc-c++ make pcre-devel zlib-devel openssl-devel
# 2. 下载Nginx(以1.24.0为例)
wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
# 3. 配置编译路径
./configure --prefix=/usr/local/nginx
# 4. 编译安装
make && make install
# 5. 创建日志目录(确保存在)
mkdir -p /usr/local/nginx/logs
# 6. 启动Nginx
/usr/local/nginx/sbin/nginx
# 7. 验证
curl localhost  # 输出Nginx默认页面即成功

安装nginx可参考如下地址:

​​​​​​--- https://blog.csdn.net/m0_74824091/article/details/144771841

--- https://blog.51cto.com/u_16099267/13340356

也可以自己百度处理

注意项:配置启动 nginx的 登录用户就是nginx的 使用用户,在之后配置账号信息时有用

3、配置地址访问的账号信息

方案A:使用Nginx标准配置路径

复制代码
# 创建标准密码文件路径
sudo mkdir -p /etc/nginx/conf.d
sudo touch /etc/nginx/conf.d/.htpasswd

# 生成密码
sudo sh -c "echo 'enjoy:$(openssl passwd -apr1 123456)' > /etc/nginx/conf.d/.htpasswd"

# 设置权限
sudo chmod 644 /etc/nginx/conf.d/.htpasswd
sudo chown nginx:nginx /etc/nginx/conf.d/.htpasswd

方案B:使用用户目录安全路径

复制代码
# 创建安全目录
sudo mkdir -p /home/enjoy/nginx_conf
sudo touch /home/enjoy/nginx_conf/.htpasswd

# 生成密码
sudo sh -c "echo 'enjoy:$(openssl passwd -apr1 123456)' > /home/enjoy/nginx_conf/.htpasswd"

# 设置权限
sudo chmod 600 /home/enjoy/nginx_conf/.htpasswd
sudo chown enjoy:enjoy /home/enjoy/nginx_conf/.htpasswd

📝 Nginx配置调整

在nginx.conf中添加:

复制代码
server {
	listen 9090;
	server_name localhost;

	location /files/ {
		alias /home/enjoy/files/;
		autoindex on;                # 启用目录浏览
		autoindex_exact_size off;    # 显示友好文件大小
		autoindex_localtime on;      # 显示本地时间
		
		# 身份验证配置
		auth_basic "Restricted Access";
		auth_basic_user_file /home/enjoy/nginx_conf/.htpasswd;  # 方案B路径
		
		# 强制下载配置
		add_header Content-Disposition 'attachment; filename="$host$request_uri"';
	}
}

✅ 验证步骤

  • 检查路径有效性

    sudo ls -l /etc/nginx/conf.d/.htpasswd # 方案A
    sudo ls -l /home/enjoy/nginx_conf/.htpasswd # 方案B

  • 重载Nginx

    sudo nginx -t
    sudo systemctl reload nginx

  • 访问测试

    curl -u enjoy:123456 http://localhost:9090/files/aaa.png --output downloaded.png

🛡️ 注意事项

  • 在步骤一时提到,启动nginx的登录账号就是 nginx的账号,在之后的所有授权账号中都应该使用此账号信息
  • 在转发过程中所使用到的所有文件夹、文件都需要进行账号授权(和nginx启动账号一样)
  • 在启动nginx过程中,注意是否存在logs 文件信息,并及时查看 error.log ,查看对应错误日志
相关推荐
OIDCAT40 分钟前
国产USB转千兆网卡芯片CH398-RTL8153国产替代实测与选型
网络·嵌入式硬件·智能硬件·国产芯片·usb转千兆网卡
M--Y3 小时前
Docker数据持久化与网络架构
网络·docker·架构
myy-learn3 小时前
30-HTTP协议
网络·网络协议·http
开开心心就好4 小时前
免费刷题软件推荐,支持导入题库自动判题
网络·网络协议·tcp/ip·jupyter·智能手机·电脑·idea
YUJIANYUE6 小时前
免费安卓手机版网络工具箱ping traceroute mtr等10+功能
网络
那年窗外下的雪.6 小时前
AIDC 学习日志|第 21 天|EVPN 多归属故障演练与中断窗口定位
网络·git·学习
幼儿园蛋小黄6 小时前
基于 TCP 的嵌入式网络通信学习总结
网络协议·学习·tcp/ip
啊阿狸不会拉杆7 小时前
《计算机网络-自顶向下方法》5.1 概述 读书笔记
网络·计算机网络·智能路由器
Polevne7 小时前
C# 上位机UDP/TCP连接外部设备
网络·tcp/ip·udp