Эти места разные. Первый из них будет соответствовать, /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;
}
Нет, это не одно и то же - вам нужно использовать косую черту с регулярным выражением, чтобы соответствовать обоим, т.е.
Посмотрите этот связанный ответ для более подробного ответа о том, как сопоставить весь URL.
источник