测试机器Centos7,本地安装nginx默认配置文件在/etc/nginx/nginx.conf文件下,保持配置文件不修改,确保include /etc/nginx/conf.d/*.conf未被注释,默认是有的

基本配置

使用虚拟主机,在/etc/nginx/conf.d/文件夹下添加如下download.conf配置文件

server {
        listen 80;
        # 访问日志
        access_log /var/log/nginx/d_access.log;
        # 错误日志
        error_log /var/log/nginx/d_error.log;
        server_name download.com;

        # 存放文件的目录
        root /var/www/html;
        
        location / {
                # 开启文件索引
                autoindex on;
                # 关闭文件的实际大小on为bytes,off为M、K、G单位
                autoindex_exact_size off;
                # 默认为off,显示的文件时间为GMT时间,on为本地时间
                autoindex_localtime on;
                # 修复中文乱码
                charset utf-8,gbk;
        }
}

运行nginx -t检测配置是否准确

systemctl start nginx.service启动服务,现在浏览器输入http://download.com会列出/var/www/html目录下的文件

注意:

局域网其他机器需要添加hosts使其地址解析到服务器,linux在/etc/hosts下加一条x.x.x.x download.comx.x.x.x为nginx服务器地址

nginx需要有进入下载文件夹读取的权限

配置Basic Auth认证

可以为某一目录设置basic auth密码认证

  1. htpasswd -c /etc/nginx/passwd username输入密码创建一个passwd文件用于认证

  2. server部分下增加一个location,设/var/www/html/secret目录为需要密码进入

    location /secret {
            autoindex on;
            autoindex_exact_size off;
            autoindex_localtime on;
    
            auth_basic "Restricted";
            auth_basic_user_file /etc/nginx/passwd;
    }
    

测试配置文件通过和重启nginx现在文件夹/var/www/html/secret是需要密码访问下载的