Идея состоит в том, чтобы принимать входящие запросы http://abc.example.com/...
и переписывать их на http://example.com/abc/...
Это достаточно легко сделать с перенаправлением 301/302:
# rewrite via 301 Moved Permanently
server {
listen 80;
server_name abc.example.com;
rewrite ^ $scheme://example.com/abc$request_uri permanent;
}
Хитрость заключается в том, чтобы сделать это изменение URL прозрачно клиентом, когда abc.example.com
и example.com
указывают на тот же экземпляр Nginx.
По-другому, может ли Nginx обслуживать содержимое из example.com/abc/...
, когда запрашивается abc.example.com/...
, и без другой поездки в оба конца клиента?
Конфигурация начальной точки
Конфигурация Nginx, которая выполняет задачу с помощью 301:
# abc.example.com
server {
listen 80;
server_name abc.example.com;
rewrite ^ $scheme://example.com/abc$request_uri permanent;
}
# example.com
server {
listen 80;
server_name example.com;
location / {
# ...
}
}