Я пытаюсь изучить 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, и все ли навигации в приложении используют это как доменное имя?
Вероятно, есть гораздо лучший способ сделать то, что я пытаюсь сделать, о котором я не знаю, поэтому любые советы или рекомендации будут с благодарностью.