很抱歉,如果过去曾回答过此问题,但我似乎找不到任何适合我的答案。
我在Windows机器上安装了nginx,并且尝试将某些/ subfolders /重定向到在其上运行的其他Web应用程序。
我的配置非常简单:
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。
我尝试了很多在网上找到的东西,但是没有用。
我想念吗?
谢谢!
答案 0 :(得分:0)
您的根目录是:root data/www;
似乎您已经错过了斜杠“ /
”。应该是这样的:root /data/www;
答案 1 :(得分:0)
这可能不是最好/最有效的方法,但是通过部分测试,我认为以下内容应该有所帮助?基本上检查http Referer标头以将其重定向到正确的位置。我已经在nginx网站上阅读了IfIsEvil,但使用它进行退货是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;
}
}
}