Nginx 反向代理到不同的根

Nginx 反向代理到不同的根

花了几天的时间来解决此问题,但无法用我的菜鸟知识库通过谷歌搜索找到解决方案。

我正在尝试做什么:访问 url/nextcloud 反向代理到 localhost 但在用户视图中保留 /nextcloud/。即 url/nextcloud/login 在 nextcloud 配置文件中内部将是 localhost/login。

期待: 作为“nextcloud”配置文件将根目录从 /var/www/ 更改为 /var/www/nextcloud,url/nextcloud/login 将代理到 localhost/login,实际上是 /var/www/nextcloud/login。

我总是得到结果:url/nextcloud 返回 url/login,即 url/var/www/login,而不是 url/var/www/nextcloud/login

下面是我的 nginx 反向代理代码,nextcloud 代码使用配置Nextcloud 文档。反向代理将 nextcloud 传递到 127.0.0.1:5141,Nextcloud 配置监听 127.0.0.1:5141。抱歉,由于我的服务器今天宕机了,我无法提供准确的 nextcloud 配置。

server {                                                                                             
        listen 80;
        listen [::]:80;                                                                              
        server_name MY_DOMAIN_HERE;                                                            
        # enforece https                                                                             
        return 301 https://$server_name:443$request_uri;                                             
}                                                                                                    

server {
        listen 443 ssl http2;                                                                        
        listen [::]:443 ssl http2;                                                                   
        server_name MY_DOMAIN_HERE;                                                            

        ssl_certificate /etc/letsencrypt/live/MY_DOMAIN_HERE/fullchain.pem;                    
        ssl_certificate_key /etc/letsencrypt/live/MY_DOMAIN_HERE/privkey.pem;                  

        root /var/www/;                                                                              

        location /nextcloud/ {
         #   rewrite ^/nextcloud/(.*)$ $1 break;                                                     

                proxy_set_header X-Forwarded-For $remote_addr;                                       
                proxy_pass http://127.0.0.1:5141/;                                                   

                proxy_set_header Host MY_DOMAIN_HERE;                                          
        }

        location /noVNC/ {
                proxy_pass http://127.0.0.1:5142;                                                    
        }

        location /shell/ {
                proxy_pass http://127.0.0.1:4200;                                                    
        }


        location /files/ {
                return 301 /;                                                                        
                proxy_pass http://127.0.0.1:5143;                                                    
        }

        #location / {                                                                                
        #       proxy_pass http://127.0.0.1:5143;                                                    
        #}                                                                                           
}

相关内容