Nginx 配置一個文件下載功能(并修改頁面樣式)

2024-9-6 修改论衍,新增CSS樣式

nginx 指定一個目錄提供文件列表和下載功能

原始的

nginx 配置文件

server {
    listen 8443 ssl;
    server_name download.yousite.com;
    
    access_log /var/log/nginx/downloads_access.log;
    
    # 證書
    ssl_certificate /etc/letsencrypt/live/yousite.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yousit.com/privkey.pem;
    
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    # 根目錄設置為 /www/mnt/downloads
    root /www/mnt/downloads;

    # 啟用目錄列表
    location / {
        autoindex on; # 啟用目錄列表
        autoindex_exact_size off; # 以更人性化的格式顯示文件大小
        autoindex_localtime on; # 以服務器本地時間顯示文件時間
        charset utf-8; # 設置字符集為 UTF-8
        try_files $uri $uri/ =404; # 確保請求的文件或目錄存在凹耙,否則返回 404

        #阻止其他網站直接鏈接你的文件
        valid_referers none blocked yousite.com *.yousite.com;
        if ($invalid_referer) {
                return 403;
        }
    }

    # 禁止訪問上級目錄鞍时,防止目錄遍歷攻擊
    location ~ /\.\./ {
        deny all;
    }

}

展示效果

原始效果.png

但是這個頁面比較難看奉件,特別是對于移動端瀏覽器很難用耗溜,文件都選不中突委,于是就想著修改一下

修改后的

不想使用其他的文件服務程序柏卤,就用 sub_filter 替換內容來實現(xiàn)引入一個CSS樣式文件

修改后的nginx配置

server {
    listen 8443 ssl;
    server_name download.yousite.com;

    access_log /var/log/nginx/downloads_access.log;

    # 證書
    ssl_certificate /etc/letsencrypt/live/yousite.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yousite.com/privkey.pem;

    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    # 根目錄設置為 /www/mnt/downloads
    root /www/mnt/downloads;

    # 啟用目錄列表
    location / {
        autoindex on; # 啟用目錄列表
        autoindex_exact_size off; # 以更人性化的格式顯示文件大小
        autoindex_localtime on; # 以服務器本地時間顯示文件時間
        charset utf-8; # 設置字符集為 UTF-8
        try_files $uri $uri/ =404; # 確保請求的文件或目錄存在,否則返回 404

        #內容替換
        sub_filter '</head>' '<link rel="stylesheet" href="/css/download.css"></head>';
        sub_filter '<title>Index of' '<title>目錄';
        sub_filter '<h1>Index of' '<h1>目錄';
        sub_filter '</body>' '<p>王某某的公開下載服務</p></body>';
        sub_filter '<hr>' '';
        sub_filter_once off;

        #阻止其他網站直接鏈接你的文件
        valid_referers none blocked yousite.com *.yousite.com;
        if ($invalid_referer) {
                return 403;
        }
    }

    # 禁止訪問上級目錄匀油,防止目錄遍歷攻擊
    location ~ /\.\./ {
        deny all;
    }

    #配置自定義的CSS
    location /css/download.css {
        alias /www/mnt/service/download/download.css;
    }

    #favicon.ico
    location /favicon.ico {
        alias /www/mnt/service/download/favicon.ico;
    }

}

主要是使用 sub_filter 替換內容缘缚,從而實現(xiàn)引入一個CSS 文件

download.css文件內容

body {
    margin: 0;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

body pre {
    font-family: Microsoft YaHei;
    font-size: 1rem;
    width: 960px;
    text-align: right;
    padding-right: 20px;
    margin-top: 0px;
}

a {
    text-decoration: none;
    border: 1px solid #ccc;
    border-radius: 5px;
    padding: 5px 10px;

    display: flex;
    position: relative;
    top: 26px;
    left: 10px;
}

a:hover {
    border-color: #000;
}

body p {
    margin-top: auto;
    margin-bottom: 10px;
}

/* 針對移動設備的 */
@media (max-width: 980px) {
    body pre {
        font-size: 1.4rem;
    }

    a {
        top: 35px;
    }
}

將CSS文件保存到上面指定的位置,如:/www/mnt/service/download/download.css;

展示效果

修改后的效果.png
手機端瀏覽器
手機端瀏覽.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末敌蚜,一起剝皮案震驚了整個濱河市桥滨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌钝侠,老刑警劉巖该园,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異帅韧,居然都是意外死亡里初,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門忽舟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來双妨,“玉大人淮阐,你說我怎么就攤上這事〉笃罚” “怎么了泣特?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長挑随。 經常有香客問我状您,道長,這世上最難降的妖魔是什么兜挨? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任膏孟,我火速辦了婚禮,結果婚禮上拌汇,老公的妹妹穿的比我還像新娘柒桑。我一直安慰自己,他們只是感情好噪舀,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布魁淳。 她就那樣靜靜地躺著,像睡著了一般与倡。 火紅的嫁衣襯著肌膚如雪界逛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天纺座,我揣著相機與錄音仇奶,去河邊找鬼。 笑死比驻,一個胖子當著我的面吹牛,可吹牛的內容都是我干的岛抄。 我是一名探鬼主播别惦,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼夫椭!你這毒婦竟也來了掸掸?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蹭秋,失蹤者是張志新(化名)和其女友劉穎扰付,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體仁讨,經...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡羽莺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了洞豁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盐固。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡荒给,死狀恐怖,靈堂內的尸體忽然破棺而出刁卜,到底是詐尸還是另有隱情志电,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布蛔趴,位于F島的核電站挑辆,受9級特大地震影響,放射性物質發(fā)生泄漏孝情。R本人自食惡果不足惜鱼蝉,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望咧叭。 院中可真熱鬧蚀乔,春花似錦、人聲如沸菲茬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽婉弹。三九已至睬魂,卻和暖如春镀赌,著一層夾襖步出監(jiān)牢的瞬間氯哮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工商佛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留喉钢,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓良姆,卻偏偏與公主長得像肠虽,于是被迫代替她去往敵國和親棒假。 傳聞我的和親對象是個殘疾皇子勺爱,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內容