gpt4 book ai didi

linux - 如何配置下载目录中任何文件的 NGINX 服务器

转载 作者:太空狗 更新时间:2023-10-29 12:27:08 28 4
gpt4 key购买 nike

我正在尝试在 Linux 上配置 NGINX 服务器,它会从目录下载任何文件。

但我面临的问题是,当文件是文本文件或文件名包含空格和 ("()"#"&") 等任何特殊字符时,浏览器将不会接受并且不会给我任何信息。

我该如何解决这个问题?我的配置是休闲的

http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;

include /etc/nginx/mime.types;
default_type application/octet-stream;
#default_type application/*;

# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;

index index.html index.htm;

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
root /usr/share/nginx/html;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {}

error_page 404/404.html;error_page 500 502 503 504/50x.html;

最佳答案

要下载文件而不是在浏览器中显示它们,MIME 类型应设置为 application/octet-stream它通常被声明为默认类型。

通常,nginx 使用文件扩展名来确定要使用的 MIME 类型,但可以通过指定带有空集的 types 指令在某个位置关闭此功能.

可以使用 URL 中的 % 编码字符访问包含奇怪字符的文件名。

作为实验,您可能希望打开 autoindex 并关闭 index 来浏览文件。这还将向您展示您的困难文件名也可以下载。

location / {
index not_a_file;
autoindex on;
types {}
}

注意:除了将其设置为不太可能的名称外,我不知道有什么机制可以关闭 index。默认的 index.html 可能不会与您的下载目录的内容冲突。

参见 this document了解更多。

关于linux - 如何配置下载目录中任何文件的 NGINX 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37131398/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com