最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Nginx搭建文件服務(wù)器的全過(guò)程

 更新時(shí)間:2026年01月09日 08:55:29   作者:堅(jiān)持學(xué)習(xí)前端日記  
文章介紹了選擇Nginx作為文件服務(wù)器的原因,包括其高性能、輕量級(jí)、高穩(wěn)定性等優(yōu)勢(shì),以及Nginx的基本配置、高級(jí)配置和生產(chǎn)環(huán)境配置,文章還詳細(xì)介紹了如何使用Nginx進(jìn)行HTTPS配置、防盜鏈配置、壓縮傳輸?shù)雀呒?jí)功能,需要的朋友可以參考下

為什么選擇 Nginx 作為文件服務(wù)器

1.性能優(yōu)勢(shì)

  • 高并發(fā)處理 - 輕量級(jí),支持大量并發(fā)連接
  • 低資源消耗 - 內(nèi)存占用少,CPU使用率低
  • 靜態(tài)文件服務(wù) - 專(zhuān)門(mén)優(yōu)化過(guò)的靜態(tài)文件傳輸
  • 高穩(wěn)定性 - 長(zhǎng)期運(yùn)行穩(wěn)定可靠

2.功能特性

  • 簡(jiǎn)單的配置 - 配置文件簡(jiǎn)潔明了
  • HTTP基本認(rèn)證 - 內(nèi)置訪(fǎng)問(wèn)控制
  • 目錄瀏覽 - 自動(dòng)顯示目錄內(nèi)容
  • 防盜鏈 - 防止他人盜用資源

基礎(chǔ)配置

1.安裝 Nginx

# Ubuntu/Debian
sudo apt update
sudo apt install nginx

# CentOS/RHEL
sudo yum install nginx
# 或者使用 dnf (較新版本)
sudo dnf install nginx

# Windows
# 下載安裝包并運(yùn)行

2.基本文件服務(wù)器配置

# /etc/nginx/sites-available/fileserver
server {
    listen 80;
    server_name your-domain.com;  # 或者使用IP地址

    # 文件服務(wù)器根目錄
    location / {
        root /var/www/files;  # 指定文件存儲(chǔ)目錄
        autoindex on;         # 啟用目錄瀏覽
        autoindex_exact_size off;  # 文件大小顯示為人類(lèi)可讀格式
        autoindex_localtime on;    # 顯示本地時(shí)間而非GMT時(shí)間
        
        # 設(shè)置基本認(rèn)證(可選)
        auth_basic "Restricted Access";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
    
    # 限制訪(fǎng)問(wèn)日志(可選)
    access_log /var/log/nginx/fileserver_access.log;
    error_log /var/log/nginx/fileserver_error.log;
}

3.創(chuàng)建認(rèn)證文件

# 安裝htpasswd工具
sudo apt install apache2-utils  # Ubuntu/Debian
# 或
sudo yum install httpd-tools    # CentOS/RHEL

# 創(chuàng)建用戶(hù)和密碼文件
sudo htpasswd -c /etc/nginx/.htpasswd username
# 系統(tǒng)會(huì)提示輸入密碼

高級(jí)配置

1.HTTPS 配置

server {
    listen 443 ssl http2;
    server_name your-domain.com;

    ssl_certificate /path/to/your/certificate.crt;
    ssl_certificate_key /path/to/your/private.key;
    
    # SSL 安全配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;

    location / {
        root /var/www/files;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        
        # 限制文件上傳大小
        client_max_body_size 100M;
    }
}

# HTTP 重定向到 HTTPS
server {
    listen 80;
    server_name your-domain.com;
    return 301 https://$server_name$request_uri;
}

2.防盜鏈配置

server {
    listen 80;
    server_name your-domain.com;

    location /files/ {
        root /var/www;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        
        # 防盜鏈配置
        valid_referers none blocked server_names *.your-domain.com;
        if ($invalid_referer) {
            return 403;
        }
    }
}

3.壓縮傳輸

server {
    listen 80;
    server_name your-domain.com;

    # 啟用Gzip壓縮
    gzip on;
    gzip_vary on;
    gzip_min_length 1024;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    location / {
        root /var/www/files;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
    }
}

4.自定義文件類(lèi)型處理

server {
    listen 80;
    server_name your-domain.com;

    # 自定義MIME類(lèi)型
    location ~* \.pdf$ {
        root /var/www/files;
        add_header Content-Type application/pdf;
        add_header Content-Disposition attachment;
    }
    
    location ~* \.(jpg|jpeg|png|gif)$ {
        root /var/www/files;
        expires 30d;  # 緩存30天
        add_header Cache-Control "public, immutable";
    }
    
    location ~* \.txt$ {
        root /var/www/files;
        add_header Content-Type text/plain;
    }
}

完整的生產(chǎn)環(huán)境配置

# /etc/nginx/sites-available/fileserver.conf
upstream fileserver_backend {
    server 127.0.0.1:8080;  # 如果需要反向代理到應(yīng)用服務(wù)器
}

server {
    listen 80;
    listen [::]:80;
    server_name your-domain.com;

    # 重定向到HTTPS
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name your-domain.com;

    # SSL證書(shū)配置
    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;
    ssl_trusted_certificate /path/to/ca.crt;

    # SSL安全配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;

    # 安全頭
    add_header X-Frame-Options DENY always;
    add_header X-Content-Type-Options nosniff always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header Strict-Transport-Security "max-age=63072000" always;

    # 文件上傳限制
    client_max_body_size 100M;

    # 靜態(tài)文件服務(wù)
    location / {
        root /var/www/files;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        
        # 緩存靜態(tài)文件
        expires 1d;
        add_header Cache-Control "public, immutable";
        
        # 防盜鏈
        valid_referers none blocked server_names *.your-domain.com;
        if ($invalid_referer) {
            return 403;
        }
    }

    # 特定目錄配置
    location ^~ /private/ {
        root /var/www;
        auth_basic "Private Area - Authorization Required";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }

    # 日志配置
    access_log /var/log/nginx/fileserver_access.log;
    error_log /var/log/nginx/fileserver_error.log;
}

# 服務(wù)狀態(tài)監(jiān)控(可選)
server {
    listen 127.0.0.1:8080;  # 僅本地訪(fǎng)問(wèn)
    location /nginx_status {
        stub_status on;
        access_log off;
        allow 127.0.0.1;
        deny all;
    }
}

啟用配置

1.啟用站點(diǎn)

# 創(chuàng)建軟鏈接(Ubuntu/Debian)
sudo ln -s /etc/nginx/sites-available/fileserver.conf /etc/nginx/sites-enabled/

# 或者直接復(fù)制配置文件
sudo cp /etc/nginx/sites-available/fileserver.conf /etc/nginx/conf.d/fileserver.conf

# 測(cè)試配置
sudo nginx -t

# 重新加載配置
sudo systemctl reload nginx
# 或
sudo nginx -s reload

2.創(chuàng)建文件目錄

# 創(chuàng)建文件存儲(chǔ)目錄
sudo mkdir -p /var/www/files
sudo chown www-data:www-data /var/www/files
sudo chmod 755 /var/www/files

# 或者使用自定義目錄
mkdir -p ~/shared-files
# 在配置中使用絕對(duì)路徑

文件上傳功能(配合后端)

1.Nginx 配置(配合后端處理上傳)

server {
    listen 80;
    server_name your-domain.com;

    # 文件上傳處理(需要后端應(yīng)用)
    location /upload {
        proxy_pass http://127.0.0.1:3000;  # 后端應(yīng)用地址
        client_max_body_size 100M;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # 文件訪(fǎng)問(wèn)
    location /files/ {
        root /var/www;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
    }
}

2.簡(jiǎn)單的上傳頁(yè)面

<!DOCTYPE html>
<html>
<head>
    <title>文件上傳</title>
</head>
<body>
    <h2>文件上傳</h2>
    <form action="/upload" method="post" enctype="multipart/form-data">
        <input type="file" name="file" required>
        <button type="submit">上傳</button>
    </form>
</body>
</html>

安全配置

1.訪(fǎng)問(wèn)控制

# IP白名單
location / {
    root /var/www/files;
    allow 192.168.1.0/24;  # 允許特定IP段
    allow 127.0.0.1;
    deny all;              # 拒絕其他所有IP
    autoindex on;
}

# 基本認(rèn)證
location /protected/ {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

2.防止惡意文件上傳

# 禁止執(zhí)行腳本文件
location ~* \.(php|pl|py|jsp|asp|sh|cgi)$ {
    deny all;
    return 404;
}

# 限制上傳文件類(lèi)型
location /uploads {
    location ~* \.(jpg|jpeg|png|gif|pdf|doc|docx|txt|zip|rar)$ {
        # 允許的文件類(lèi)型
    }
    
    location ~* \.(php|html|htm|js|css)$ {
        deny all;
        return 404;
    }
}

性能優(yōu)化

1.緩存配置

# 啟用文件緩存
location / {
    root /var/www/files;
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;
    
    # 設(shè)置緩存
    expires 1y;
    add_header Cache-Control "public, immutable";
    
    # 啟用sendfile
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
}

2.Gzip壓縮

# 全局啟用Gzip
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_proxied expired no-cache no-store private must-revalidate auth;
gzip_types
    text/plain
    text/css
    text/xml
    text/javascript
    application/javascript
    application/xml+rss
    application/json;

管理和監(jiān)控

1.常用命令

# 啟動(dòng)Nginx
sudo systemctl start nginx

# 停止Nginx
sudo systemctl stop nginx

# 重啟Nginx
sudo systemctl restart nginx

# 重載配置
sudo systemctl reload nginx

# 檢查配置
sudo nginx -t

# 查看狀態(tài)
sudo systemctl status nginx

2.日志查看

# 查看訪(fǎng)問(wèn)日志
sudo tail -f /var/log/nginx/access.log

# 查看錯(cuò)誤日志
sudo tail -f /var/log/nginx/error.log

# 統(tǒng)計(jì)訪(fǎng)問(wèn)量
sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

總結(jié)

使用 Nginx 作為文件服務(wù)器的優(yōu)勢(shì):

  • 高性能 - 靜態(tài)文件服務(wù)效率極高
  • 配置簡(jiǎn)單 - 配置文件直觀(guān)易懂
  • 功能豐富 - 支持認(rèn)證、防盜鏈、緩存等
  • 安全可靠 - 企業(yè)級(jí)穩(wěn)定性
  • 資源占用少 - 輕量級(jí),適合各種規(guī)模部署

Nginx 是搭建文件服務(wù)器的理想選擇,特別適合用于靜態(tài)文件分發(fā)、內(nèi)網(wǎng)文件共享、CDN節(jié)點(diǎn)等場(chǎng)景。

以上就是使用Nginx搭建文件服務(wù)器的全過(guò)程的詳細(xì)內(nèi)容,更多關(guān)于Nginx搭建文件服務(wù)器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Nginx強(qiáng)制跳轉(zhuǎn)Https(Http訪(fǎng)問(wèn)跳轉(zhuǎn)Https)

    Nginx強(qiáng)制跳轉(zhuǎn)Https(Http訪(fǎng)問(wèn)跳轉(zhuǎn)Https)

    這篇文章主要為大家介紹了Http訪(fǎng)問(wèn)強(qiáng)制跳轉(zhuǎn)到Https的幾種方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • windows下nginx的安裝使用及解決80端口被占用nginx不能啟動(dòng)的問(wèn)題

    windows下nginx的安裝使用及解決80端口被占用nginx不能啟動(dòng)的問(wèn)題

    這篇文章主要給大家介紹了關(guān)于windows下nginx的安裝使用,以及如何解決80端口被占用導(dǎo)致nginx不能啟動(dòng)的問(wèn)題,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-04-04
  • windows10 系統(tǒng)配置nginx文件服務(wù)器的圖文教程

    windows10 系統(tǒng)配置nginx文件服務(wù)器的圖文教程

    這篇文章主要介紹了windows10 系統(tǒng)配置nginx文件服務(wù)器的圖文教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Nginx學(xué)習(xí)之如何搭建文件防盜鏈服務(wù)的方法示例

    Nginx學(xué)習(xí)之如何搭建文件防盜鏈服務(wù)的方法示例

    這篇文章主要介紹了Nginx學(xué)習(xí)之如何搭建文件防盜鏈服務(wù)的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • nginx配置之部署后刷新產(chǎn)生404錯(cuò)誤的解決

    nginx配置之部署后刷新產(chǎn)生404錯(cuò)誤的解決

    文章總結(jié):在前端部署過(guò)程中遇到瀏覽器刷新出現(xiàn)nginx_error的問(wèn)題,通過(guò)配置nginx.conf文件中的try_files指令來(lái)解決,針對(duì)單頁(yè)面應(yīng)用的邏輯問(wèn)題,確保登錄頁(yè)面的邏輯正確處理會(huì)話(huà)存儲(chǔ)中的token,以避免頁(yè)面刷新后回到登錄頁(yè)面的情況
    2026-02-02
  • nginx后端節(jié)點(diǎn)的健康檢查和nginx平滑升級(jí)方式

    nginx后端節(jié)點(diǎn)的健康檢查和nginx平滑升級(jí)方式

    本文介紹了Nginx反向代理的ngx_http_proxy_module和ngx_http_upstream_module模塊,以及淘寶開(kāi)發(fā)的nginx_upstream_check_module模塊,并介紹了Nginx平滑升級(jí)原理及實(shí)戰(zhàn)操作,最后總結(jié)了Nginx版本升級(jí)的方法
    2026-04-04
  • Nginx服務(wù)器Nginx.com配置文件詳解

    Nginx服務(wù)器Nginx.com配置文件詳解

    這篇文章主要介紹了Nginx服務(wù)器Nginx.com配置文件詳解的相關(guān)資料,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • 使用nginx實(shí)現(xiàn)ssh跳板機(jī)方式

    使用nginx實(shí)現(xiàn)ssh跳板機(jī)方式

    文章介紹了如何使用Docker Compose在跳板機(jī)上安裝Nginx,并配置Nginx作為T(mén)CP流量的轉(zhuǎn)發(fā)器,文中提到配置NGINX支持STREAM模塊,并在`nginx.conf`文件中添加stream塊來(lái)實(shí)現(xiàn)TCP流量轉(zhuǎn)發(fā),需要注意的是,該方法不適合生產(chǎn)環(huán)境,存在安全風(fēng)險(xiǎn)
    2026-01-01
  • nginx部署二級(jí)目錄無(wú)法加載css和js的問(wèn)題及解決過(guò)程

    nginx部署二級(jí)目錄無(wú)法加載css和js的問(wèn)題及解決過(guò)程

    文章描述了React+UmiJS項(xiàng)目部署到Nginx二級(jí)目錄時(shí)遇到的404和靜態(tài)資源加載問(wèn)題,因Nginx路徑配置錯(cuò)誤導(dǎo)致,通過(guò)調(diào)整.umirc.ts文件,修正了資源路徑,最終實(shí)現(xiàn)正常部署
    2025-09-09
  • nginx 配置特定IP訪(fǎng)問(wèn)的實(shí)現(xiàn)

    nginx 配置特定IP訪(fǎng)問(wèn)的實(shí)現(xiàn)

    本文主要介紹了nginx 配置特定IP訪(fǎng)問(wèn)的實(shí)現(xiàn),通過(guò)合理設(shè)置Nginx的配置文件,管理員可以根據(jù)實(shí)際需求,靈活地控制對(duì)網(wǎng)站資源的訪(fǎng)問(wèn),提高網(wǎng)站的安全性,感興趣的可以了解一下
    2024-01-01

最新評(píng)論

增城市| 申扎县| 大邑县| 丰都县| 板桥市| 衡东县| 紫金县| 闽侯县| 石城县| 永德县| 大埔县| 桐梓县| 万年县| 阿荣旗| 博爱县| 蒙阴县| 嘉善县| 闵行区| 盘锦市| 炎陵县| 平阴县| 沙湾县| 芮城县| 远安县| 扬中市| 唐海县| 禹州市| 平昌县| 银川市| 桓台县| 博兴县| 呼伦贝尔市| 江北区| 永寿县| 名山县| 海南省| 遵义市| 天峨县| 江孜县| 普安县| 兴国县|