Jadual Kandungan
1. Pasang bekas nginx
1. Konfigurasikan nginx
3. Sokongan muat naik fail
2. Tambah muat naik.html
3 Tambah perkhidmatan pemprosesan seterusnya
4 Dapatkan kemajuan muat naik
1 Ubah suai konfigurasi
2. Ubah suai halaman muat naik
Rumah Operasi dan penyelenggaraan Nginx Cara menggunakan nginx untuk membina pelayan fail untuk memuat naik dan memuat turun dalam bekas

Cara menggunakan nginx untuk membina pelayan fail untuk memuat naik dan memuat turun dalam bekas

May 15, 2023 pm 11:49 PM
nginx pelayan

1. Pasang bekas nginx

Untuk nginx menyokong muat naik fail, anda perlu memuat turun dan menjalankan bekas dengan modul nginx-upload-module:

sudo podman pull docker.io/dimka2014/nginx-upload-with-progress-modules:latest
sudo podman -d --name nginx -p 83:80 docker.io/dimka2014/nginx-upload-with-progress-modules
Salin selepas log masuk

Bekas turut disertakan dengan modul nginx- upload-module dan modul nginx-upload-progress-modul.

NotaBekasnya ialah Alpine Linux, tiada bash dan beberapa arahan berbeza daripada pengedaran Linux yang lain.

Gunakan arahan berikut untuk memasuki bekas:

sudo podman exec -it nginx /bin/sh
Salin selepas log masuk

Sebagai pelayan fail, ia perlu memaparkan waktu tempatan, yang bukan waktu tempatan secara lalai. Tetapkan waktu tempatan melalui siri arahan berikut:

apk update
apk add tzdata
echo "Asia/Shanghai" > /etc/timezone
rm -rf /etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
apk del tzdata
Salin selepas log masuk

Buat direktori akar pelayan fail:

mkdir -p /nginx/share
Salin selepas log masuk

2. Konfigurasikan nginx

Laluan fail konfigurasi ialah /etc/nginx/conf.d/default.conf, Memandangkan

server {
    ……
    charset utf-8; # 设置字符编码,避免中文乱码
    location / {
            root   /nginx/share; # 根目录
            autoindex   on;  # 开启索引功能
            autoindex_exact_size off; # 关闭计算文件确切大小(单位bytes),只显示大概大小(单位kb、mb、gb)
            autoindex_localtime on; # 显示本地时间
        }
}
Salin selepas log masuk

perkhidmatan fail kami kini dikonfigurasikan Anda perlu menggunakan arahan berikut untuk membuat konfigurasi berkuat kuasa:

nginx -s reload
Salin selepas log masuk

Cara menggunakan nginx untuk membina pelayan fail untuk memuat naik dan memuat turun dalam bekas

3. Sokongan muat naik fail

1. Konfigurasikan nginx

Konfigurasi di atas telah menyelesaikan konfigurasi pelayan fail, tetapi fail tidak boleh dimuat naik Jika anda ingin memuat naik fail, anda perlu membuat konfigurasi berikut:

server {
    ……
    charset utf-8; # 设置字符编码,避免中文乱码
    client_max_body_size 32m; 
    upload_limit_rate 1M; # 限制上传速度最大1M
    
    # 设置upload.html页面路由
    location = /upload.html {                                                        
            root /nginx;  # upload.html所在路径                                                       
    }

    location /upload {
            # 限制上传文件最大30MB
            upload_max_file_size 30m;
            # 设置后端处理交由@rename处理。由于nginx-upload-module模块在存储时并不是按上传的文件名存储的,所以需要自行改名。
            upload_pass @rename;
            # 指定上传文件存放目录,1表示按1位散列,将上传文件随机存到指定目录下的0、1、2、...、8、9目录中(这些目录要手动建立)
            upload_store /tmp/nginx 1;
            # 上传文件的访问权限,user:r表示用户只读,w表示可写
            upload_store_access user:r;

            # 设置传给后端处理的表单数据,包括上传的原始文件名,上传的内容类型,临时存储的路径
            upload_set_form_field $upload_field_name.name "$upload_file_name";
            upload_set_form_field $upload_field_name.content_type "$upload_content_type";
            upload_set_form_field $upload_field_name.path "$upload_tmp_path";
            upload_pass_form_field "^submit$|^description$";

            # 设置上传文件的md5值和文件大小
            upload_aggregate_form_field "${upload_field_name}_md5" "$upload_file_md5";
            upload_aggregate_form_field "${upload_field_name}_size" "$upload_file_size";

            # 如果出现下列错误码则删除上传的文件
            upload_cleanup 400 404 499 500-505;
     }

    location @rename {
            # 后端处理
            proxy_pass http://localhost:81;
    }
}
Salin selepas log masuk

di atas Dalam konfigurasi, storan sementara adalah berdasarkan cincangan 1-bit dan anda perlu mencipta beberapa direktori 0~9 secara manual dalam direktori muat naik.

 mkdir -p /tmp/nginx
 cd /tmp/nginx
 mkdir 1 2 3 4 5 6 7 8 9 0
 chown nginx:root . -R
Salin selepas log masuk

2. Tambah muat naik.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>上传</title>
</head>
<body>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<form name="upload" method="POST" enctype="multipart/form-data" action="upload">
<input type="file" name="file"/>
<input type="submit" name="submit" value="上传"/>
</form>
</body>
</html>
Salin selepas log masuk

3 Tambah perkhidmatan pemprosesan seterusnya

Anda perlu memasang python dan perpustakaan yang diperlukan terlebih dahulu

apk add python3
pip3 install bottle
pip3 install shutilwhich
Salin selepas log masuk

python. Kod sumber perkhidmatan:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

from bottle import *
import shutil

@post("/upload")
def postExample():
    try:
        dt = request.forms.dict
        filenames = dt.get(&#39;file.name&#39;)
        tmp_path = dt.get("file.tmp_path")
        filepaths = dt.get("file.path")
        count = filenames.__len__()
        dir = os.path.abspath(filepaths[0])
        for i in range(count):
            print("rename %s to %s" % (tmp_path[i],  os.path.join(dir, filenames[i])))
            target = os.path.join(dir, filenames[i])
            shutil.move(tmp_path[i], target)
            shutil.chown(target, "nginx", "root") # 由于shutil.move不会保持用户归属,所以需要显示修改,否则访问时会报403无访问权限
    except Exception as e:
        print("Exception:%s" % e)
        redirect("50x.html") # 如果是在容器中部署的nginx且映射了不同的端口,需要指定IP,端口
    redirect(&#39;/&#39;) # 如果是在容器中部署的nginx且映射了不同的端口,需要指定IP,端口

run(host=&#39;localhost&#39;, port=81)
Salin selepas log masuk

4 Dapatkan kemajuan muat naik

1 Ubah suai konfigurasi

# 开辟一个空间proxied来存储跟踪上传的信息1MB
upload_progress proxied 1m;
server {
    ……
    location ^~ /progress {
        # 报告上传的信息
        report_uploads proxied;
    }
    location /upload {
        ...
        # 上传完成后,仍然保存上传信息5s
        track_uploads proxied 5s;
    }
}
Salin selepas log masuk

2. Ubah suai halaman muat naik

rreee

Cara menggunakan nginx untuk membina pelayan fail untuk memuat naik dan memuat turun dalam bekas

Atas ialah kandungan terperinci Cara menggunakan nginx untuk membina pelayan fail untuk memuat naik dan memuat turun dalam bekas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk membenarkan akses rangkaian luaran ke pelayan tomcat Bagaimana untuk membenarkan akses rangkaian luaran ke pelayan tomcat Apr 21, 2024 am 07:22 AM

Untuk membenarkan pelayan Tomcat mengakses rangkaian luaran, anda perlu: mengubah suai fail konfigurasi Tomcat untuk membenarkan sambungan luaran. Tambahkan peraturan tembok api untuk membenarkan akses kepada port pelayan Tomcat. Buat rekod DNS yang menunjukkan nama domain ke IP awam pelayan Tomcat. Pilihan: Gunakan proksi terbalik untuk meningkatkan keselamatan dan prestasi. Pilihan: Sediakan HTTPS untuk meningkatkan keselamatan.

Bagaimana untuk menjalankan thinkphp Bagaimana untuk menjalankan thinkphp Apr 09, 2024 pm 05:39 PM

Langkah-langkah untuk menjalankan ThinkPHP Framework secara setempat: Muat turun dan nyahzip ThinkPHP Framework ke direktori tempatan. Buat hos maya (pilihan) yang menunjuk ke direktori akar ThinkPHP. Konfigurasikan parameter sambungan pangkalan data. Mulakan pelayan web. Mulakan aplikasi ThinkPHP. Akses URL aplikasi ThinkPHP dan jalankannya.

Selamat datang ke nginx! Bagaimana untuk menyelesaikannya? Selamat datang ke nginx! Bagaimana untuk menyelesaikannya? Apr 17, 2024 am 05:12 AM

Untuk menyelesaikan ralat "Selamat datang ke nginx!", anda perlu menyemak konfigurasi hos maya, dayakan hos maya, muat semula Nginx, jika fail konfigurasi hos maya tidak dapat ditemui, buat halaman lalai dan muat semula Nginx, kemudian mesej ralat akan hilang dan laman web akan menjadi paparan biasa.

Cara mendaftar phpmyadmin Cara mendaftar phpmyadmin Apr 07, 2024 pm 02:45 PM

Untuk mendaftar untuk phpMyAdmin, anda perlu terlebih dahulu mencipta pengguna MySQL dan memberikan kebenaran kepadanya, kemudian memuat turun, memasang dan mengkonfigurasi phpMyAdmin, dan akhirnya log masuk ke phpMyAdmin untuk mengurus pangkalan data.

Bagaimana untuk menggunakan projek nodejs ke pelayan Bagaimana untuk menggunakan projek nodejs ke pelayan Apr 21, 2024 am 04:40 AM

Langkah-langkah penggunaan pelayan untuk projek Node.js: Sediakan persekitaran penggunaan: dapatkan akses pelayan, pasang Node.js, sediakan repositori Git. Bina aplikasi: Gunakan npm run build untuk menjana kod dan kebergantungan yang boleh digunakan. Muat naik kod ke pelayan: melalui Git atau Protokol Pemindahan Fail. Pasang kebergantungan: SSH ke dalam pelayan dan gunakan pemasangan npm untuk memasang kebergantungan aplikasi. Mulakan aplikasi: Gunakan arahan seperti node index.js untuk memulakan aplikasi, atau gunakan pengurus proses seperti pm2. Konfigurasikan proksi terbalik (pilihan): Gunakan proksi terbalik seperti Nginx atau Apache untuk menghalakan trafik ke aplikasi anda

Cara berkomunikasi antara bekas docker Cara berkomunikasi antara bekas docker Apr 07, 2024 pm 06:24 PM

Terdapat lima kaedah untuk komunikasi kontena dalam persekitaran Docker: rangkaian kongsi, Karang Docker, proksi rangkaian, volum dikongsi dan baris gilir mesej. Bergantung pada keperluan pengasingan dan keselamatan anda, pilih kaedah komunikasi yang paling sesuai, seperti memanfaatkan Docker Compose untuk memudahkan sambungan atau menggunakan proksi rangkaian untuk meningkatkan pengasingan.

Bagaimana untuk menjana URL daripada fail html Bagaimana untuk menjana URL daripada fail html Apr 21, 2024 pm 12:57 PM

Menukar fail HTML kepada URL memerlukan pelayan web, yang melibatkan langkah berikut: Dapatkan pelayan web. Sediakan pelayan web. Muat naik fail HTML. Buat nama domain. Halakan permintaan.

Apa yang perlu dilakukan jika pemasangan phpmyadmin gagal Apa yang perlu dilakukan jika pemasangan phpmyadmin gagal Apr 07, 2024 pm 03:15 PM

Langkah penyelesaian masalah untuk pemasangan phpMyAdmin yang gagal: Semak keperluan sistem (versi PHP, versi MySQL, pelayan web dayakan sambungan PHP (mysqli, pdo_mysql, mbstring, token_get_all semak tetapan fail konfigurasi (hos, port, nama pengguna, kata laluan); kebenaran (pemilikan direktori, keizinan fail); phpMyAdmin

See all articles