IvanTabakerka
@IvanTabakerka
Чистокровный говнокодер

Как реализовать два vue.js приложения на одном домене nginx?

Есть два пути:
/home/web/domainname/public/user - Пользовательский интерфейс
/home/web/domainname/public/admin - Админ панель

И есть конфигурация nginx

server_name domainname;

	location / {
		try_files $uri $uri/ /index.html;
		alias /home/web/domainname/public/user/;
	}

	location /admin/ {
		try_files $uri $uri/ /index.html;
		alias /home/web/domainname/public/admin/;
	}


Вроде бы что то шевелиться. К примеру я захожу на domainname/admin/ и я вижу мою админпанель, могу в ней поковыряться и т.п. Но если я зайду в админпанель так domainname/admin/page/, то меня закинет на несуществующую страницу, запрос начнёт обрабатывать первое приложение.

Я так понимаю, мне надо в location / {} запретить обрабатывать путь /admin/, но я понятия не имею как это сделать.

UPD:
Может пойти от обратного, и запретить пользовательскому интерфейсу, обрабатывать маршрут /admin/? Возможно ли такое, товарищи эксперты Vue.js?
  • Вопрос задан
  • 287 просмотров
Решения вопроса 1
@dodo512
server {
    server_name domainname;

    root /home/web/domainname/public/user;
    
    location / {
        try_files $uri $uri/ /index.html;
    }

    location /admin/ {
        root /home/web/domainname/public;
        try_files $uri $uri/ /admin/index.html;
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Незачем дублировать директивы и придумывать какие-то алиасы.

server {

root /home/web/domainname/public;
try_files $uri $uri/ /index.html;

location /user { если захотите как-то по-разному обрабатывать эти пути }
location /admin { }

location / { тут какой-нибудь редирект или что ещё захотите }

}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы