Nginx 开启目录下载
平时应用中,我们大都用apache搭建下载页面。毕竟Apache搭建起来非常方便,yum安装,创建目录就可以了。
但有时还是需要用nginx配置下载页面。这里就是一个简单的配置nginx下载页面的过程。过程简单,有需要优化的地方建议大家百度一下。
首先环境准备:
# lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.7 (Final)
Release: 6.7
Codename: Final
一、Nginx 安装
yum install -y nginx
useradd -s /sbin/nologin -M nginx
二、修改nginx配置文件
cd /etc/nginx/
cat > nginx.conf << 'eof'
user nginx;
worker_processes ;
events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout ;
server_tokens off; log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; server {
listen ;
server_name localhost;
location / {
root html;
index index.html index.htm;
} location /download {
charset utf-;
root /data/;
#alias /data/download/; if ($request_filename ~* ^.*?\.(txt)$){
add_header Content-Disposition 'attachment';
add_header Content-Type: 'APPLICATION/OCTET-STREAM';} autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
access_log /var/log/nginx/download.log main;
} error_page /50x.html;
location = /50x.html {
root html;
}
}
}
eof
三、创建nginx下载目录,并授予权限
mkdir -p /data/download #chown -R nginx.nginx /data/download
#(这部可有可无)
四、启动nginx,测试下载
/etc/init.d/nginx start
浏览器输入http://IP/download/
查看下载

注意:
补充一点。
目录下载中
location /download {
charset utf-8;
#root /data/; #root的意思是url 访问IP/download nginx会定向到本地目录/data/download/下。
alias /data/; # alias 意思是 url 访问IP/download nginx会定向到本地目录/data/ 下。
}
为下载目录添加用户名密码验证
#安装 htpasswd 工具
yum -y install httpd-tools #设置用户名和密码,并把用户名、密码保存到指定文件中:
htpasswd -c /etc/nginx/pass/passwd coderschool
New password:
Re-type new password:
Adding password for user coderschool #修改 nginx 配置文件
auth_basic "Please input password"; #这里是验证时的提示信息
auth_basic_user_file /etc/nginx/pass/passwd;
location /download {
charset utf-;
#root /data/;
alias /data/;
...... #然后重启 nginx:
nginx -s reload
htpasswd 使用小结
htpasswd命令选项参数说明
-c 创建一个加密文件
-n 不更新加密文件,只将htpasswd命令加密后的用户名密码显示在屏幕上
-m 默认htpassswd命令采用MD5算法对密码进行加密
-d htpassswd命令采用CRYPT算法对密码进行加密
-p htpassswd命令不对密码进行进行加密,即明文密码
-s htpassswd命令采用SHA算法对密码进行加密
-b htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码
-D 删除指定的用户
htpasswd例子
a、如何利用htpasswd命令添加用户?
htpasswd -bc ./.passwd tonyzhang pass
在当前目录下生成一个.passwd文件,用户名tonyzhang ,密码:pass,默认采用MD5加密方式
b、如何在原有密码文件中增加下一个用户?
htpasswd -b ./.passwd onlyzq pass
去掉c选项,即可在第一个用户之后添加第二个用户,依此类推
c、如何不更新密码文件,只显示加密后的用户名和密码?
htpasswd -nb tonyzhang pass
不更新.passwd文件,只在屏幕上输出用户名和经过加密后的密码
d、如何利用htpasswd命令删除用户名和密码?
htpasswd -D .passwd tonyzhang
e、如何利用 htpasswd 命令修改密码?
htpasswd -D .passwd tonyzhang
htpasswd -b .passwd tonyzhang pass
Nginx 开启目录下载的更多相关文章
- nginx开启目录浏览,解决中文乱码问题
nginx开启目录浏览,解决中文乱码问题 方法如下: server { listen 80; #listen [::]:80; server_name gongzi.liwenhui.xin gz.l ...
- nginx开启目录浏览
使用nginx作为下载站点,开启目录浏览的功能 在/etc/nginx/sites-enabled/default中添加: autoindex on ; autoindex_exact_size of ...
- Nginx 开启目录浏览功能配置
在server节点下添加 server { listen ; server_name default; #index index.php; # 目录浏览功能 autoindex on; # 显示文件大 ...
- nginx配置目录访问&用户名密码控制
背景 项目上需要一些共享目录让外地同事可以网页访问对应的文件,且受权限控制: 现有环境: centos nginx 你可以了解到以下内容: 配置nginx开启目录访问 并配置nginx用户名和密码进行 ...
- Nginx 和 Apache 开启目录浏览功能
1.Nginx 在相应项目的 Server 段中的 location 段中,添加 autoindex on.例如: server { listen ; server_name www.dee.prac ...
- 开启Nginx的目录文件列表功能
ngx_http_autoindex_module 此模块用于自动生成目录列表,ngx_http_autoindex_module只在 ngx_http_index_module模块未找到索引文件时 ...
- Nginx配置资源下载目录
访问我的博客 之前在网上找 CentOs 的镜像的时候,发现了阿里云的这个镜像源,速度蛮快的.今天也来搭建一个类似的站,使用 nginx 作为资源下载服务器. 图片详情: 安装 Nginx 参考这篇教 ...
- nginx开启网站目录浏览功能
一.开启全站目录浏览功能 编辑nginx.conf, 在http下面添加以下内容: autoindex on; # 开启目录文件列表 autoindex_exact_size on; # 显示出文件的 ...
- nginx下目录浏览及其验证功能配置记录
工作中常常有写不能有网页下载东西的需求,在Apache下搭建完成后直接导入文件即可达到下载/显示文件的效果;而Nginx的目录列表功能默认是关闭的,如果需要打开Nginx的目录列表功能,需要手动配置, ...
随机推荐
- Java动态代理之JDK实现和CGlib实现(简单易懂)
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6542259.html 一:代理模式(静态代理) 代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是 ...
- java io系列18之 CharArrayReader(字符数组输入流)
从本章开始,我们开始对java io中的“字符流”进行学习.首先,要学习的是CharArrayReader.学习时,我们先对CharArrayReader有个大致了解,然后深入了解一下它的源码,最后通 ...
- VMware 无法打开内核设备 \\.\Global\vmx86
无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件.你想要在安装 VMware Workstation 前重启吗? vmware 安装完成后,打开现有虚拟系统时,报错. 无法打 ...
- mysql安装绑定my.ini
Windows操作系统中,我们安装Mysql有两个选择: 一是下载MSI点击运行,利用windows系统安装程序的方法按部就班的来安装: 二是下载ZIP,解压出来就能立即使用. 在使用ZIP安装时,安 ...
- centos 6.5 安装jdk1.8
1.源码包准备: 首先到官网下载jdk-8u66-linux-x64.tar.gz, http://www.oracle.com/technetwork/java/javase/downloads/j ...
- a标签与js的冲突
如上图,需要做一个页面,点击左边的标题,右边就显示左边标题下的子标题的集合, html代码如下: <div id="newleft"> <ul> <l ...
- Java集合操作精华总结
一.Set1.HashSet boolean add(E e) 添加 访问 boolean remove(E e) 删除 Iterator<E> iterator 遍历 int size( ...
- Newtonsoft.Json序列化字符串-格式化
转自:https://blog.csdn.net/wlphlj/article/details/51982866最近C#中需要将实体进行json序列化,使用了Newtonsoft.Json publi ...
- gson和fastjson将json对象转换成javaBean 简单对照
今天在网上看代码时,发现项目使用了Gson,用于将json字符串转换成javaBean. 以前没使用过Gson,随即,简单入了个们, 想起fastjson也有将json字符串转换成javaBean的A ...
- Python字符串方法总结(一)
1.find 在一个较长的字符串中查找子串.它返回子串所在位置的最左端索引.如果没有找到则返回-1 2.split 将字符串用给定的分隔符分割成序列,当没有提供分隔符时,默认把所有空格作为分隔符 3. ...