nginx proxy_pass загружает ресурсы из корня - PullRequest
0 голосов
/ 13 октября 2018

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

Я установил nginx на моей машине с Windows, и я пытаюсьперенаправить некоторые / подпапки / на различные веб-приложения, работающие на нем.

Мой конфиг настолько прост, насколько может быть:

worker_processes  1;
events {
worker_connections  1024;
}

http {
include       mime.types;
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;

server {
    listen       80;
    server_name  my.ip;

    location / {
        resolver 192.168.0.202;
        root   data/www;
        index  index.html;
    }

   location /plex {
   resolver 192.168.0.202;
   proxy_pass http://my.ip:32488;
   }

    location /radarr {
    resolver 192.168.0.202;
   proxy_pass http://my.ip:8787;
    }

    location /sonarr {
    resolver 192.168.0.202;
   proxy_pass http://my.ip:8989;

    }

    location /pihole {
    resolver 192.168.0.202;
   proxy_pass http://my.ip:8081/admin;

    }

  }
}

Загрузка / subdir / работает нормально, но все ресурсызагружаются из / которые возвращают 404. Как и ожидалось.

Я перепробовал много материалов, найденных в сети, но ничего не помогло.

Спасибо, я пропустил?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

Может быть не самый лучший / самый эффективный способ сделать это, но с некоторым частичным тестированием я думаю, что что-то в соответствии с нижеприведенным должно помочь?В основном, проверяя заголовок http referer, чтобы перенаправить его в правильное местоположение.Я прочитал IfIsEvil на сайте nginx, но использовать его для возврата на 100% безопасно.Обратите внимание, что я не проверил это полностью.

http {
  include       mime.types;
  default_type  application/octet-stream;
  sendfile        on;
  keepalive_timeout  65;
  resolver 192.168.0.202;

  server {
    listen       80;
    server_name  my.ip;
    root   data/www;

    location / {
      if ($http_referer ~* \/plex) {
        return 302 /plex$uri;
      }
      if ($http_referer ~* \/radarr) {
        return 302 /radarr$uri;
      }           
      index  index.html;
    }

   location /plex {
     proxy_pass http://my.ip:32488;
   }

    location /radarr {
      proxy_pass http://my.ip:8787;
    }
  }
}
0 голосов
/ 13 октября 2018

Ваш корневой каталог: root data/www; Кажется, вы пропустили косую черту "/".Должно быть так: root /data/www;

...