Строка запроса относится к параметрам GET, которые вы указываете после URL, например ?имя=фу. Я предполагаю, что вместо этого вы хотите обслуживать файлы в каталоге, поскольку вы упоминаете «внешнюю папку, которую мы хотим обслуживать из Nginx».
В этом случае ваш пример должен работать нормально, но ваш try_files правило предполагает, что вы также предоставите имя файла внутри URL-адреса.
Итак, когда вы запрашиваете GET www.mysite.com затем Nginx пытается найти
путь внутри корень каталог с любым именем /, .html, .html/ или сбой с кодом ошибки 404. Дорожка .html/ относится к каталогу с именем .html внутри вашего корня и, вероятно, является ошибкой.
Если у вас есть файл с именем index.html в указанном вами корневом каталоге, для него будут соответствовать следующие запросы:
ПОЛУЧИТЬ www.mysite.com/index.html (потому что $ури)
ПОЛУЧИТЬ www.mysite.com/index (потому что $uri.html)
То, что вы, вероятно, ищете, это:
место расположения / {
корень /var/www/html/out;
индекс index.html index.htm;
try_files $uri $uri/ =404;
}
Это делает следующее:
- Существует ли фактический файл, указанный $ури, в вашем корневом каталоге, а затем подавайте это.
- Есть ли путь к каталогу, указанный $ури, в вашем корневом каталоге?
- Если да, проверьте, содержит ли он файл с именем index.html или же index.htm - тогда служить это.
- Ничего из вышеперечисленного, возврат 404.
Так ПОЛУЧИТЬ www.mysite.com попробуй найти файл index.html или же index.htm внутри вашего корня.
Если вы все еще имеете в виду строки запроса, вы можете написать что-то вроде этого:
место расположения / {
корень /var/www/html/out;
try_files /$arg_file = 404;
}
Затем запросите лайк ПОЛУЧИТЬ www.mysite.com?file=index.html будет искать файл index.html внутри вашего корня. Nginx — это круто, не так ли?
Надеюсь это поможет :)
Также читайте больше о try_files и Подводные камни Nginx и распространенные ошибки.