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

Я пытаюсь изучить nginx и столкнулся с небольшой проблемой.

Я хочу иметь возможность запускать много проектов под одним и тем же URL-адресом, скажем, example.com

Если пользователь заходит на example.com/, я хочу обработать порт 3000, а если пользователь заходит на example.com/project1.Я хочу, чтобы он обрабатывался на порту 3001.

Я настраиваю свой блок сервера следующим образом:

server {
        listen 80;
        listen [::]:80;

        server_name example.com www.example.com;

        location / {
            proxy_pass http://localhost:3000;
            proxy_http_version 1.1;         
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;    
            proxy_cache_bypass $http_upgrade;
        }
        location  /project1 {
            rewrite /test/(.*) /$1  break;  
            proxy_pass http://localhost:3001;
            proxy_http_version 1.1;         
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;    
            proxy_cache_bypass $http_upgrade; 
        }
}

Перенаправление выполняется так, чтобы при использовании приложения, работающего на 3001,URL-адрес, который он получает, не является project1 / example.html, а просто example.html.

Это прекрасно работает, и если приложение получает правильный URL-адрес.Проблема возникает, когда я пытаюсь сделать какую-либо навигацию на странице.Например, если я зайду на example.com/project1/home, пользователь будет перенаправлен на example.com/login, а префикс project1 потерян.

Есть ли способ установить example.com/project1 в качествебазовый URL, и все ли навигации в приложении используют это как доменное имя?

Вероятно, есть гораздо лучший способ сделать то, что я пытаюсь сделать, о котором я не знаю, поэтому любые советы или рекомендации будут с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...