Heim > Web-Frontend > js-Tutorial > So laden Sie die Nginx-Konfigurationsdatei abschnittsweise herunter

So laden Sie die Nginx-Konfigurationsdatei abschnittsweise herunter

php中世界最好的语言
Freigeben: 2018-04-11 14:15:08
Original
2985 Leute haben es durchsucht

Dieses Mal erkläre ich Ihnen in Abschnitten, wie Sie die Konfigurationsdatei von Nginx herunterladen und welche Vorsichtsmaßnahmen für das Herunterladen von Nginx-Konfigurationsdateien gelten. Das Folgende ist ein praktischer Fall. Werfen wir einmal einen Blick.

HTML5 bietet ein neues Range-Tag, um das segmentierte Herunterladen von Dateien zu implementieren. Dieses Tag kann in Node.JS konfiguriert werden, um das segmentierte Herunterladen von Dateien zu implementieren.

Header-Tag

Anforderungsanforderungsheader: Dateiinhalt nach 3744 herunterladen

range: bytes=3744-
Nach dem Login kopieren

Return Response Header: Gesamtdateilänge 15522643 Bytes

accept-ranges': 'bytes'
content-range': 'bytes */15522643'
Nach dem Login kopieren

Nginx-Konfiguration

Zuerst müssen Sie Nginx so konfigurieren, dass es die Rückgabe von Bereichs-Tags unterstützt. Es ist sehr einfach, add_header Accept-Ranges-Bytes hinzuzufügen Wenn die node.js-Seite nach der Aktivierung

Anforderungsinformationen
server {
 listen 80;
 server_name adksdf.com;
 location ~ ^/(img/|js/|css/|upload/|font/|fonts/|res/|icon) {
  add_header Access-Control-Allow-Origin *;
  add_header Accept-Ranges bytes;
  root /var/www/...;
  access_log off;
  expires max;
 }
 ...
}
Nach dem Login kopieren
mit Bereichsheader sendet, gibt Nginx bereichsbezogene Informationen zurück:

Dies ist ein vollständiger Antwortheader. Beachten Sie, dass hier nicht die Gesamtlänge der Datei ist, sondern die Länge des aktuellen Bereichs.

content-length Die Gesamtgröße der Datei kann anhand des Inhaltsbereichs in diesem Header ermittelt werden.

{ server: 'nginx',
 date: 'Wed, 24 Jan 2018 02:43:20 GMT',
 'content-type': 'application/zip',
 'content-length': '12420187',
 'last-modified': 'Tue, 16 Jan 2018 12:09:47 GMT',
 connection: 'close',
 etag: '"5a5deb8b-ecdb53"',
 expires: 'Thu, 31 Dec 2037 23:55:55 GMT',
 'cache-control': 'max-age=315360000',
 'access-control-allow-origin': '*',
 'accept-ranges': 'bytes',
 'content-range': 'bytes 3102456-15522642/15522643' }
Nach dem Login kopieren

Node.JS-Implementierung

Dieses Beispiel erkennt zunächst halb heruntergeladene Dateien lokal, erstellt dann einen Dateistream im Lese-/Schreibmodus „r+“ und schreibt den Antwortstream in die Datei.

Hier wird der Anweisungsdatei Bereichsunterstützung hinzugefügt.

var reqOptions = { url: packageUrl, headers: {} }
var filepath  = '/path/to/your/part/file'
var fileOptions = {}
fs.stat(filepath, function(err, states) {
 if (states) {
  //Range: bytes=3744-
  reqOptions.headers['range'] = 'bytes=' + states.size + '-'
  fileOptions = { start: states.size, flags: 'r+' }
 }
 //创建 http 对象方法
 var reqUrl = reqOptions.url
 var urlObj = url.parse(reqUrl)
 var options = {
   hostname : urlObj.hostname
  , port   : urlObj.port
  , path   : urlObj.pathname
  , headers  : reqOptions.headers || {}
 }
 var req = http.request(options, function(res) {
  var receives  = []
  var err     = null
  var statusCode = res.statusCode
  var headers   = res.headers
  var ws = fs.createWriteStream(filepath, fileOptions)
  ws.on('error', function(e) {
   console.log('ws error', e)
  })
  res.on('data', function(chrunk) {
   ws.write(chrunk)
  })
  res.on('error', function(err) {
   ws.end()
  })
  res.on('end', function() {
   ws.end()
  })
 })
 req.on('error', function(e) {
  cb && cb(e, null, {})
 })
 req.end()
 ...
})
Nach dem Login kopieren
Zurück zur Kopfzeile

Beim Anfordern von Nginx können andere Statuscodes zurückgegeben werden, z. B. 206 oder 416, mit der folgenden Bedeutung:

206 Teilinhalt

Was zurückgegeben wird, ist Teil des Dateiinhalts

416 Angeforderter Bereich nicht erfüllbar

Der angeforderte Bereich überschreitet die Dateigröße                                        

Ich glaube, dass Sie die Methode zum Lesen dieses Artikels beherrschen. Weitere spannende Artikel finden Sie auf der chinesischen PHP-Website.

Empfohlene Lektüre:

So verwenden Sie das On-Change-Attribut in IView

Detaillierte Erläuterung der Schritte für Vue zur Verarbeitung von Storejs Datenerfassung

Das obige ist der detaillierte Inhalt vonSo laden Sie die Nginx-Konfigurationsdatei abschnittsweise herunter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage