如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~

以下配置仅供参考,不一定百分百有效

1、编辑nginx配置文件。

sudo vim /etc/nginx/sites-enabled/default

2、在server {}块中写入以下内容,注意把8807端口改成你的端口,把docker改成你的路由路径,把dpanel改成8807服务后端的路由路径。

location ^~ /docker {
                # 动态路径重写(兼容有无斜杠)
                rewrite ^/docker/?(.*)$ /$1 break;

                # 代理到8807端口
                proxy_pass http://127.0.0.1:8807;
                
                # WebSocket 支持
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_read_timeout 86400s;
                proxy_send_timeout 86400s;
                proxy_connect_timeout 600s;

                # 深度内容替换(处理硬编码路径)
                sub_filter_once off;
                sub_filter_types *;
                sub_filter 'http://$host/' 'http://$host/docker/';
                sub_filter 'href="/' 'href="/docker/';
                sub_filter 'src="/' 'src="/docker/';
                sub_filter 'url(/' 'url(/docker/';
                sub_filter '/(assets|static)/' '/docker/$1/';
                # 动态API路径修正(新增以下规则)
                sub_filter '"/api/'  '"/docker/api/';
                sub_filter "'/api/"  "'/docker/api/";
                sub_filter 'fetch("/api' 'fetch("/docker/api';
                sub_filter 'axios("/api' 'axios("/docker/api';
                # 如果你的路径是空的,比如只有一个/,那么务必删除下一行!
                sub_filter '/dpanel/' '/docker/dpanel/';  
                sub_filter '"/dpanel/' '"/docker/dpanel/';
                sub_filter "'/dpanel/" "'/docker/dpanel/";
                # WebSocket端点路径(新增以下规则)
                sub_filter 'ws://$host/' 'ws://$host/docker/';      # 新增WS协议替换
                sub_filter 'wss://$host/' 'wss://$host/docker/';    # 新增WSS协议替换
                sub_filter '"/ws/' '"/docker/ws/';                 # 双引号包裹路径
                sub_filter "'/ws/" "'/docker/ws/";                 # 单引号包裹路径

                # 智能重定向修复(增强正则)
                proxy_redirect ~*^((?:https?|wss?)://[^/]+)?/(.*)$ $1/docker/$2;
                proxy_redirect / /docker/;

                # 标准代理头设置
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                # proxy_set_header X-Forwarded-Path /docker;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                # 缓存控制(防止替换失效)
                proxy_set_header Accept-Encoding "";  # 禁用gzip以支持sub_filter

                # 超时设置
                send_timeout 600s;
                client_body_timeout 600s;
                keepalive_timeout 600s;
                client_max_body_size 0;
                client_body_buffer_size 0;

        }

3、重启Nginx服务。

sudo systemctl restart nginx