Nginx 为 OMV6 webui 和其他应用配置 sub-path 反向代理的问题

讨论 未结 0 112
idealhs
idealhs 会员 2022年6月8日 10:29 发表
<h1></h1> <p>因为对 Nginx 知识不多,所以在为 OMV webui 配置反向代理的时候遇到了一些问题,来问问熟悉的老哥们 </p> <p>我的需求是将所有 <code>http://server:port</code> 的 web 服务形式通过反代,以 <code>http://server/subpath</code> 的形式来访问。 </p> <p>比如 OMV webui 是 <code>http://server:81</code> ,那么可以访问 <code>http://server/omv</code>,jellyfin 是<code>http://server:8096</code> ,那么可以访问 <code>http://server/jellyfin</code> </p> <p>为此我将 OMV webui 的端口从 80 改成了 81 ,并且有了以下 nginx config </p> <pre><code class="language-nginx"> server { listen 80; server_name server server.local; set $localhost 127.0.0.1; location /omv { return 302 $scheme://$host/omv/; } location /omv/ { proxy_pass http://$localhost:81; } } </code></pre> <p>这段 config 并没有工作,而我记得在之前的 omv5 中我成功地如此反代了 OMV webui 。 </p> <p>并且令我疑惑的是,proxy_pass 对不同的应用配置表现不一样,我难以学习并为不同的应用自己编写 proxy_pass config (location 块)。例如 jellyfin 官方网站给出的 nginx config 是这样的 <a href="https://jellyfin.org/docs/general/networking/nginx.html" rel="nofollow">Jellyfin Doc</a> </p> <p>PS: <em>以下代码均包含在上述代码的 server 块中,与其他 location 同级</em> </p> <pre><code class="language-nginx"> # Jellyfin location /jellyfin { return 302 $scheme://$host/jellyfin/; } location /jellyfin/ { proxy_pass http://$jellyfin:8096/jellyfin/; proxy_pass_request_headers on; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_buffering off; } </code></pre> <p>对于这种可以在应用中设置 sub-path 的应用,我使用上述官方 config 反而会失败,如果我其中的<br> <code>proxy_pass http://$jellyfin:8096/jellyfin/;</code><br> 改为<br> <code>proxy_pass http://$jellyfin:8096;</code><br> 则可成功将 jellyfin 代理。 </p> <p>PS : 我使用过另一个需要配置 sub-path 的应用是 NextCloud , 在 config.php 中配置 <code>'overwritewebroot' =&gt; 'sub-path'</code> <a href="https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html" rel="nofollow">NextCloud Doc</a> </p> <p>对于 qBittorrent,同样也有官方给出的 nginx config : <a href="https://github.com/qbittorrent/qBittorrent/wiki/NGINX-Reverse-Proxy-for-Web-UI" rel="nofollow">NGINX Reverse Proxy for Web UI</a> , 而这个 config 则不需要我任何改动,就可成功代理。 </p> <p>希望 V2 的 Nginx 大佬不吝赐教,帮助我解开这个疑惑。</p>
收藏(0)  分享
相关标签: 灌水交流
注意:本文归作者所有,未经作者允许,不得转载
0个回复
  • 消灭零回复