Назад | Перейти на главную страницу

Обратное проксирование Nginx в другой корень

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

Что я пытаюсь сделать: Доступ к обратному прокси url / nextcloud на localhost, но сохранение / nextcloud / в поле зрения пользователя. то есть url / nextcloud / login внутри будет localhost / login в файле конфигурации nextcloud.

Ожидание: Как "nextcloud" файл конфигурации измените root с / 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;                                                    
        #}                                                                                           
}