upstream backend {
127.127.0.1:2000;
127.127.0.2:2000 max_fails ...;
}
server {
proxy_pass https://backend;
}
server {
listen 127.127.0.1:2000;
location / {
proxy_pass https://server.com.one;
}
}
server {
listen 127.127.0.2:2000;
location / {
proxy_pass https://server.com.two;
}
}
Если location задан префиксной строкой со слэшом в конце и запросы обрабатываются при помощи proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass или grpc_pass, происходит специальная обработка. В ответ на запрос с URI равным этой строке, но без завершающего слэша, будет возвращено постоянное перенаправление с кодом 301 на URI с добавленным в конец слэшом.
absolute_redirect off;
server {
listen 80;
server_name *.example.com;
return 301 https://$host$request_uri;
}
При поиске виртуального сервера по имени, если имени соответствует несколько из указанных вариантов, например, одновременно подходят и имя с маской, и регулярное выражение, будет выбран первый подходящий вариант в следующем порядке приоритета:
- точное имя
- самое длинное имя с маской в начале, например “*.example.com”
- самое длинное имя с маской в конце, например “mail.*”
- первое подходящее регулярное выражение (в порядке следования в конфигурационном файле)
server {
server_name ~^(?<dynamic>[a-z0-9\-]+)\.example.com$;
...
}
server {
server_name stage1.example.com;
....
}
...
ложными значениями переменной являются пустая строка или “0”;
listen 1.1.1.1:443;
, а во втором listen 443;
(что эквивалентно listen *:443;
).