Как настроить переадресацию в Nginx с директории на поддомен?

Как настроить nginx, чтобы клиентский логин был поддоменом (user_login.example.ru), и чтобы файлы клиентского приложения продолжали находиться в директории root/www/example.ru/dir? Вот мой текущий конфигурационный файл nginx: [предоставленный конфиг]
  • 15 февраля 2024 г. 22:08
Ответы на вопрос 2
Для настройки переадресации с директории на поддомен в Nginx, вы можете воспользоваться следующим конфигурационным файлом:

```
server {
    listen 80;
    server_name example.ru;

    root /www/example.ru/dir;

    location / {
        try_files $uri $uri/ @subdomain;
    }

    location @subdomain {
        rewrite ^/(.*)$ http://$host.$1 permanent;
    }
}
```

В этом конфигурационном файле мы используем `server_name` для указания домена, к которому применяется конфигурация. Затем мы указываем `root /www/example.ru/dir`, чтобы задать папку, содержащую файлы клиентского приложения.

В блоке `location /` мы используем `try_files`, чтобы попытаться обслужить запрошенный URI; если файл не найден, мы перенаправляемся на блок `@subdomain`.

В блоке `location @subdomain` мы используем `rewrite` для изменения URI и перенаправления клиента на поддомен с помощью `http://$host.$1`, где `$host` это имя хоста сервера и `$1` содержит запрашиваемый URI.

После внесения этих изменений в конфигурацию Nginx, перезагрузите сервер Nginx для применения изменений. Теперь при обращении к URL вида `http://user_login.example.ru`, клиент будет перенаправлен на поддомен `user_login.example.ru`, а файлы клиентского приложения будут обслуживаться из директории `/www/example.ru/dir`.
Что то вроде такого (естественно надо дополнить SSL и проч.) : 
server {
    server_name example.ru www.example.ru;
    location / {
        root /var/www/example.ru;
        index index.html index.htm ;
        try_files $uri $uri/ /dir/index.html =404;
    }
server {
    server_name user_login.example.ru www.user_login.example.ru;
    location / {
        root /var/www/example.ru/user_login;
        index index.html index.htm ;
        try_files $uri $uri/ /index.html =404;
    }


Это кстати позволит избавится от доп пути dir в вебморде (надо пути поправить) и index поправте на свой для приложения
Похожие вопросы