nginx管理多个端口和应用程序导航

时间:2019-02-02 16:48:17

标签: nginx routing webserver

我想学习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,并且应用程序内的所有导航都将其用作域名?

可能有更好的方法来做我不知道的事情,因此,任何建议或建议都将不胜感激。

0 个答案:

没有答案