nginx - nginx proxy_pass 从根加载资产
问题描述
很抱歉,如果这在过去得到了回答,但我似乎找不到任何对我有用的答案。
我已经在我的 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。
我尝试了很多在网上找到的东西,但没有任何效果。
谢谢我失踪了吗?
谢谢!
解决方案
可能不是最好/最有效的方法,但通过一些部分测试,我认为以下内容应该有所帮助?基本上检查 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;
}
}
}
推荐阅读
- sql-server - 防止相同的行插入到表中
- android - How do you make a Horizontal Number Picker Widget in Flutter?
- ecmascript-6 - 如何解决“找不到模块'gulp-babel'”?
- outlook - 如何在 office.js 中获取邮件的接收日期?
- android - 不同设备上的奇怪按钮
- android - 为什么更新应用程序时清除内部文件夹(context.filesDir)?
- pandas - Groupby 过滤器,基于连续序列排序和 ID 和日期列
- javascript - 在离线(无网络)模式下显示 SVG
- php - 如何在 WHILE 循环中添加 IF 条件
- javascript - 在 React 中选择项目关闭下拉菜单?