Nginx文件服务器美化工具-Fancyindex

Nginx文件服务器美化工具-Fancyindex

Scroll Down

Nginx文件服务器美化工具-Fancyindex

前言

不满足于nginx默认index首页的用户可参考使用fancyindex插件,基于docker容器搭建

效果图

搭建过程

镜像获取

docker pull yaolianhua/fancyindex

yml

version: '3.1'

services:

  fancyindex:
    image: yaolianhua/fancyindex
    hostname: fancyindex
    container_name: fancyindex
    restart: always
    ports:
      - 443:443
      - 80:80
    volumes:
      - /volume1/yaolianhua/files/:/share:ro
      - /volume1/yaolianhua/files/docker/nginx/nginx.conf:/etc/nginx/nginx.conf:rw
      - /volume1/yaolianhua/files/docker/nginx/conf.d:/etc/nginx/conf.d:rw
      - /volume1/yaolianhua/files/docker/nginx/ssl:/etc/nginx/ssl:rw ## ssl证书
    environment:
      CONTAINER_TIMEZONE: Europe/Paris
      WEBUSER: user
      WEBPASSWORD: password
    networks:
      - fancyindex
networks:
  fancyindex:
    external: true

nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
	worker_connections 768;
	# multi_accept on;
}

http {

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	# default_type application/octet-stream;
	
	##
	# SSL Settings
	##

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;
	gzip_disable "msie6";

	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

	##
	# Virtual Host Configs
	##

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}


#mail {
#	# See sample authentication script at:
#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#	# auth_http localhost/auth.php;
#	# pop3_capabilities "TOP" "USER";
#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#	server {
#		listen     localhost:110;
#		protocol   pop3;
#		proxy      on;
#	}
# 
#	server {
#		listen     localhost:143;
#		protocol   imap;
#		proxy      on;
#	}
#}

default.conf

80端口配置

server {
    listen 80 default_server;
    client_max_body_size 1G;
    
    location /fancyindex {
        rewrite /fancyindex/(.*) /$1  break;
        root /theme/Nginx-Fancyindex-Theme;
    }
    
    location / {
        # manage DELETE AND MKDIR
        if (-d $request_filename) { rewrite ^(.*[^/])$ $1/ break; }
        
        root /share;
        fancyindex on;
        fancyindex_localtime on;
        fancyindex_name_length 255; # Maximum file name length in bytes, change as you like.
        # theme
        fancyindex_header "/fancyindex/header.html";
        fancyindex_footer "/fancyindex/footer.html";
        fancyindex_ignore "fancyindex";

        dav_methods PUT DELETE MKCOL COPY MOVE;
        dav_ext_methods PROPFIND OPTIONS;
        create_full_put_path  on;
        dav_access  user:rw group:rw  all:rw;

        auth_basic  "Access restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
	}

}

ssl.conf

443 端口配置,需要有ssl证书

server {
    listen 443 ssl;
    client_max_body_size 1G;
    ssl_certificate /etc/nginx/ssl/live/file.yaolh.cn/fullchain.pem;
	ssl_certificate_key /etc/nginx/ssl/live/file.yaolh.cn/privkey.pem;
    location /fancyindex {
        rewrite /fancyindex/(.*) /$1  break;
        root /theme/Nginx-Fancyindex-Theme;
    }
    
    location / {
        # manage DELETE AND MKDIR
        if (-d $request_filename) { rewrite ^(.*[^/])$ $1/ break; }
        
        root /share;
        fancyindex on;
        fancyindex_localtime on;
        fancyindex_name_length 255; # Maximum file name length in bytes, change as you like.
        # theme
        fancyindex_header "/fancyindex/header.html";
        fancyindex_footer "/fancyindex/footer.html";
        fancyindex_ignore "fancyindex";

        dav_methods PUT DELETE MKCOL COPY MOVE;
        dav_ext_methods PROPFIND OPTIONS;
        create_full_put_path  on;
        dav_access  user:rw group:rw  all:rw;

        auth_basic  "Access restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
	}

}

运行

docker-compose -f <your yml path> up -d

访问

http://127.0.0.1 或者 https://127.0.0.1