@ilya_chch

Как реализовать функционирование приложения как в подпапке в nginx?

есть приложение, которое работает на домене (для примера example.com ). необходимо сделать еще одно приложение на домене example.com/new-app (при этом это совершенно отдельное приложение, никак не связанное с тем, которое на example.com).

в конфигурации nginx для example.com есть location /new-app, которое делает proxy_pass на домен example.com:8080, по которому доступно второе приложение. статику и прочее я подтягиваю через try_files (типа если файлы такие тут есть, использовать, иначе идети на /new-app/static). это работает. Проблема в том, что пути прописаны так: /login. и этот /login ведет на example.com/login, а мне нужно, чтобы он вел на example.com/new-app/login. как такое можно сделать?

server {
        listen 80;
        server_name example.com;
        access_log /var/log/nginx/example.log;

        location /static/{
                root /srv/example/files/;
                try_files $uri /new-app/$uri;
                expires 30d;
        }
        location /media/{
                root /srv/example/files/;
                try_files $uri /new-app/$uri;
        }
        location / {
                proxy_pass http://unix:/srv/example/example.sock;
                proxy_set_header Host $server_name;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        location /new-app/static/ {
                root /srv/new-app/files/;
                expires 30d;
        }
        location /new-app/media/ {
                root /srv/new-app/files/;
        }
        location /new-app/ {
                proxy_pass http://example.com:8080/;
        }
}

server {
        listen 8080;
        server_name example.com;
        access_log /var/log/nginx/new-app.log;

        location /static/{
                root /srv/new-app/files/;
                expires 30d;
        }
        location /media/{
                root /srv/new-app/files/;
        }
        location /{
                proxy_pass http://unix:/srv/new-app/new-app.sock;
                proxy_set_header Host $server_name;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}


возможно есть и другие предложения
  • Вопрос задан
  • 244 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы