server {
listen *:12901;
server_name test.lan;
location / {
proxy_pass http://lan_nodes;
//....
}
location ~ ^/static/.*\.(jpg|jpeg|gif|png|webp|ico|css|bmp|swf|js|html|txt|ejs|json)$ {
root /test/vendor;
expires 10d;
}
location ~ \.(jpg|jpeg|gif|png|webp|ico|css|bmp|swf|js|html|txt|ejs|json)$ {
root /test/app/dist/images;
expires 10d;
}
}
rewrite ^/index.video$ /index.html;
location = /index.video {
try_files /index.html =404;
}
Необходимо иметь в виду, что при использовании индексного файла делается внутреннее перенаправление и запрос может быть обработан уже в другом location’е. Например, в такой конфигурации:location = / { index index.html; } location / { ... }
запрос “/” будет фактически обработан во втором location’е как “/index.html”.
location = /
вместо index нужен try_files.server {
listen 80;
server_name localhost;
index index.html;
root C:/Workspace/landing;
location = / {
try_files /index.html =404;
}
location /images/ { }
location /css/ { }
location /js/ { }
location / {
root C:/Workspace/frontend/dist/app-frontend;
try_files $uri $uri/ /index.html;
}
}
location /internal_redirect/ {
proxy_pass http://google.com/;
}
location /internal_redirect/ {
rewrite ^/internal_redirect/(.*) /$1 break;
proxy_pass http://google.com;
}
upstream api {
server 127.0.0.1:7777;
}
server {
listen 80;
listen [::]:80;
server_name example.com;
root /home/iam/project/dist;
location / {
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://api/;
}
location /static/ {
try_files $uri @cdn_uploads;
}
location @cdn_uploads {
root /home/iam/cdn/uploads;
rewrite ^/static(/.*)$ $1 break;
}
}
location /api/ {
proxy_pass http://starter_api/;
}
location = /api {
proxy_pass http://starter_api/;
}
proxy_cache_path /var/cache/nginx levels=2 keys_zone=pagecache:5m inactive=10m max_size=50m;
server {
listen 80;
server_name domain.ru;
root /var/www/html;
rewrite ^/(pricing|contacts)/?(.*) /$2;
location ~ \.(js|css)$ {
try_files $uri @custom_cache;
}
location / {
try_files $uri/index.html $uri @custom;
}
location @custom {
proxy_pass http://ru_backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location @custom_cache {
proxy_cache pagecache;
proxy_cache_valid 10m;
proxy_pass http://ru_backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
rewrite ^/(.*(?:pdf|epub))$ /wp-content/themes/divi-child/download.php?file=$1;
server {
listen 80;
server_name www.site.ru;
return 301 http://site.ru$request_uri;
}
server {
listen 80;
server_name site.ru;
root /var/www/html;
rewrite ^/rss\.xml$ /data/rss.php;
rewrite ^/sitemap\.xml$ /data/sitemap.php;
location @handler {
rewrite ^/(.*)$ /data/engine.php?a=$1;
}
location / {
try_files $uri $uri/ @handler;
}
location ~ \.php$ {
try_files $uri =404;
# Тут нужно добавить свои параметры fastcgi
}
}
location
nginx.org/ru/docs/http/ngx_http_core_module.html#l...Чтобы найти location, соответствующий запросу, вначале проверяются location’ы, заданные префиксными строками (префиксные location’ы). Среди них ищется location с совпадающим префиксом максимальной длины и запоминается. Затем проверяются регулярные выражения, в порядке их следования в конфигурационном файле. Проверка регулярных выражений прекращается после первого же совпадения, и используется соответствующая конфигурация. Если совпадение с регулярным выражением не найдено, то используется конфигурация запомненного ранее префиксного location’а.
Если у совпавшего префиксного location’а максимальной длины указан модификатор “^~”, то регулярные выражения не проверяются.
Кроме того, с помощью модификатора “=” можно задать точное совпадение URI и location. При точном совпадении поиск сразу же прекращается.
location ~ [^/]\.php(/|$)
=
или ^~
, чтобы поиск сразу же прекратился и регулярные выражения не проверялись.location = /etrade_http_tunnel/etrade_http_tunnel.php {
fastcgi_read_timeout 1000;
location
и rewrite
для сопоставления используют URI запроса в нормализованном виде, т.е. уже после декодирования текста, заданного в виде %XX
.$request_uri
. Там он будет целиком (с аргументами).if ($request_uri ~ "^/%40(.*)$") {
return 301 /@$1;
}