我想学习nginx的和已运行到有点问题的。
我希望能够有thesame 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,并且应用程序内的所有导航都将其用作域名?
可能有更好的方法来做我不知道的事情,因此,任何建议或建议都将不胜感激。