How to download Nginx configuration file in sections
This time I will bring you the configuration file of Nginx. How to download the Nginx configuration file in parts? one time.
Html5 provides a new Range tag to implement segmented downloading of files. This tag can be configured in Node.JSto implement segmented downloading of files.
Header Tag Request Request Header: Download the file content after 3744
range: bytes=3744-
Return Response Header: Total file length 15522643 bytes
accept-ranges': 'bytes' content-range': 'bytes */15522643'
Nginx configuration First, you need to configure Nginx to support range tag return. It is very simple to add add_header Accept-Ranges bytes; this line.
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; } ... }
After enabling, if the node.js side sends
request informationcontaining range header, nginx will return range-related information: This is a complete Response Header. Note that
content-length here is not the total length of the file, but the length of the current range. <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">{ 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' }</pre><div class="contentsignin">Copy after login</div></div>
The total size of the file can be obtained based on the content-range in this header.
Node.JS implementation This example first detects half-downloaded files locally, then creates a file stream in 'r' read-write mode, and writes the response stream to the file.
Here, range support will be added to the statement file.
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() ... })
Return Header When requesting nginx, other status codes may be returned, such as 206 or 416, with the following meaning:
206 Partial Content
What is returned is part of the file content
416 Requested Range Not Satisfiable
The requested range exceeds the file size
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!
Recommended reading:
How to use the on-change attribute in IViewDetailed explanation of the steps for vue to process storejs data acquisitionThe above is the detailed content of How to download Nginx configuration file in sections. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Running multiple PHP versions simultaneously in the same system is a common requirement, especially when different projects depend on different versions of PHP. How to be on the same...

Running the H5 project requires the following steps: installing necessary tools such as web server, Node.js, development tools, etc. Build a development environment, create project folders, initialize projects, and write code. Start the development server and run the command using the command line. Preview the project in your browser and enter the development server URL. Publish projects, optimize code, deploy projects, and set up web server configuration.

GiteePages static website deployment failed: 404 error troubleshooting and resolution when using Gitee...

Solution to Redirecting 404 Errors after Simulation Login When using Selenium for Simulation Login, we often encounter some difficult problems. �...

This article discusses how to optimize website performance on Debian systems. "DebianStrings" is not a standard term and may refer to tools or technologies used in Debian systems to improve website performance. The following are some practical tips: 1. It is recommended to use the Pagoda panel to simplify the installation and configuration process for web server and PHP environment configuration. It is recommended to install Nginx1.22.1 as the web server, PHP8.2 as the script interpreter, and MySQL10.7.3-MariaDB as the database system. Be sure to enable the necessary PHP extensions, such as fileinfo, opcache, memcached, red

The log files of the Debian system are valuable resources for system administrators and developers to diagnose problems and monitor the operating status of the system. This article will focus on some key log information that cannot be ignored. Core system logs (usually located in /var/log/syslog or /var/log/messages) These logs record the core activities of the system, including: system startup and shutdown events: log kernel version, hardware detection results, etc., to help track startup failures or shutdown exceptions. Hardware failure alerts: such as disk errors, memory problems, etc., to promptly detect potential hardware problems. Service status changes: Record the service start, stop and restart events to facilitate monitoring of the service's health. User login/logout history:

Discussion on the JS resource caching issue of Enterprise WeChat. When upgrading project functions, some users often encounter situations where they fail to successfully upgrade, especially in the enterprise...

To set character encoding on the server side to solve the garbled Bootstrap Table, you need to follow the following steps: check the server character encoding; edit the server configuration file; set the character encoding to UTF-8; save and restart the server; verify the encoding.
