2016-05-10 5 views
2

Я пытаюсь настроить сервер NGINX на Linux, который загружает любые файлы из каталога.Как настроить сервер NGINX, который загружает любые файлы в derectory

Но проблема в том, что файл является текстовым файлом или имя файла содержит любые специальные символы, такие как пробелы, и ("()" # "&"), тогда браузер не будет развлекать и ничего мне не даст.

Как решить эту проблему? мой конфигурации как

залежи
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;

ответ

1

Чтобы загрузить файлы, а не отобразить их в браузере, тип MIME должен быть установлен в application/octet-stream. В любом случае этот тип объявляется как тип по умолчанию.

Обычно nginx использует расширение файла, чтобы определить, какой тип MIME для использования, но это может быть выключено в месте, указав types директивы с пустым множеством.

Имена файлов со странными символами могут быть доступны с использованием символа% -encoded в URL-адресе.

В качестве эксперимента вы можете включить autoindex и отключить index для просмотра файлов. Это также покажет вам, что ваши сложные имена файлов могут быть загружены.

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

Примечание: Я не знаю механизма, чтобы выключить index, кроме установки его в маловероятном имя. Возможно, что по умолчанию index.html может не совпадать с содержимым ваших каталогов загрузки.

См. this document для получения дополнительной информации.