location /product {
proxy_pass http://10.0.0.25:8080;
}
если я использую свое первое описание местоположения для папки продукта, я должен использовать http://mysdomain.com/product/
и я не могу использовать http://mysdomain.com/product
из браузера. Я имею в виду, что я должен использовать косую черту в конце URL. Я хочу получить доступ к папке продукта с двумя состояниями.
есть ли разница между этим:
location /product/ {
proxy_pass http://10.0.0.25:8080;
}
Эти места разные. Первый совпадет /production
например, это могло быть не то, что вы ожидали. Поэтому я предпочитаю использовать местоположения с косой чертой в конце.
Также обратите внимание, что:
Если расположение определяется строкой префикса, которая заканчивается символом косой черты, и запросы обрабатываются одним из proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass или memcached_pass, затем в ответ на запрос с URI, равным этой строке, но без косой черты в конце, постоянное перенаправление с кодом 301 будет возвращено на запрошенный URI с добавленной косой чертой.
Если у вас есть что-то вроде:
location /product/ {
proxy_pass http://backend;
}
и перейти к http://example.com/product
, nginx автоматически перенаправит вас на http://example.com/product/
.
Даже если вы не используете одну из этих директив выше, вы всегда можете выполнить перенаправление вручную:
location = /product {
rewrite ^ /product/ permanent;
}
или, если вы не хотите перенаправления, вы можете использовать:
location = /product {
proxy_pass http://backend;
}
Нет, это не одно и то же - вам нужно будет использовать завершающую косую черту с регулярным выражением, чтобы соответствовать обоим, т.е.
location ~ /product/?
Видеть этот связанный ответ для более подробного ответа о том, как сопоставить весь URL.