Nginx: Как служить различным URL с различными настройками из одного файла?

Передайте свой вывод по каналу в следующий Perl:
жемчуг-ne 'мой @fields = разделил/\s/, $ _; foreach мой $input (@fields) {если (/^ (\d +).. (\d +) $/) {печатают $2-1 + 1, "\n"; }}'

То, что это делает, во-первых разделяется вход на пробелах (таким образом, Ваша первая строка должна работать). Это затем выполняет регулярное выражение на каждой записи для соответствия строке, которая только содержит два числа, разделенные.. - скобки помещают числа в 1$ и 2$.

Например: echo "20066898701..20066901700" | perl -ne 'my @fields = split /\s/, $_; foreach my $input (@fields) { if (/^(\d+)\.\.(\d+)$/) { print $2 - $1 + 1, "\n"; } }' 3000

1
задан 8 December 2012 в 08:17
2 ответа

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

location /ABC.txt {
  add_header Content-Type text/plain;
  rewrite /ABC last;
}
location /ABC.html {
  add_header Content-Type text/html;
  rewrite /ABC last;
}
location /ABC {
  alias /var/www/ABC.txt
}

Я не обещаю, что это сработает, потому что я не тестировал его на реальном nginx.

1
ответ дан 3 December 2019 в 21:39

nginx обрабатывает предложенный mimetype на основе URI. Я попробовал следующую комбинацию, и она работает:

    root /usr/share/nginx/www;

    default_type text/plain;

    location = /abc.txt {
      alias /usr/share/nginx/www/abc;
    }

    location /abc.html {
      alias /usr/share/nginx/www/abc;
    }
1
ответ дан 3 December 2019 в 21:39

Теги

Похожие вопросы