Конфигурация Nginx для проектов с тем же именем сервера - PullRequest
0 голосов
/ 07 марта 2019

В настоящее время я работаю над проектом с Symfony и VueJS.Symfony - это фронт моего приложения, а также API, в то время как VueJS используется в качестве бэк-офиса.

Интересно, можно ли было иметь оба проекта под одним и тем же доменным именем, имея путьчтобы дифференцировать их.

Кроме того, я также хочу иметь единственную связь для обеих платформ.Обычно мы остаемся на связи с сеансом Symfony и токеном OAuth, данным API Symfony для VueJS.

Для этого требования я теперь создаю токен OAuth каждый раз, когда кто-то успешно подключается к приложению, и сохраняю его влокальное хранилище, как это было бы у VueJS.

Но теперь мне нужна хорошая конфигурация для размещения в nginx, чтобы они оба могли работать под одним и тем же доменным именем.

Не стесняйтесь сообщитьЯ хотел бы предоставить больше информации, я надеюсь, что это может быть сделано!Если нет, я открыт для предложений!

Редактировать:

location / {
    try_files $uri /app.php$is_args$args;
}

location /admin {
    alias /path/admin/public/dist;
    index index.html;
    try_files $uri $uri/ /index.html;
}

location ~ /public/dist/* {
    alias /path/admin/public/dist;
    try_files $uri $uri/ /index.html;
}
location ~ ^/app\.php(/|$) {
    fastcgi_pass unix:/run/php/php7.1-fpm.sock;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    fastcgi_param DOCUMENT_ROOT $realpath_root;
    internal;
}

С этой конфигурацией мне удалось получить доступ к части VueJS, почти все ресурсы загружены (кроме одногоошибочно называется).Как только я захожу на свою страницу, запускается vueJS и переписывает URL-адрес в / admin / login.Я могу войти в систему, я могу получить доступ ко всем страницам без проблем, но когда я перезагружаюсь, nginx больше не распознает путь, и меня перенаправляют на ошибку Symfony 404.

1 Ответ

0 голосов
/ 07 марта 2019

Конечно, вы можете достичь желаемого с помощью директивы "location".

Пример:

server {
    listen 80;
    server_name example.com;

    location / {
        # document root, proxy pass or whatever to vuejs.
    }

    location /api {
        # document root, proxy pass or whatever to symfony.
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...