当前位置: 首页 > news >正文

【知识】Nginx反向代理路径到指定端口,很全面

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn]

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

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

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

相关文章:

  • 3D模型在线转换工具:轻松实现3DM转OBJ
  • 深度学习的集装箱箱号OCR识别技术,识别率99.9%
  • mysql之B+ 树索引 (InnoDB 存储引擎)机制
  • Eclipse2024中文汉化教程(图文版)
  • Kafka客户端连接服务端异常 Can‘t resolve address: VM-12-16-centos:9092
  • 深入理解设计模式之外观模式
  • 【Java】Java 常用核心类篇 —— 时间-日期API(上)
  • 个人环境配置--安装记录
  • 怎麼利用靜態ISP住宅代理在指紋流覽器中管理社媒帳號?
  • uniapp微信小程序PC端选择文件(无法使用wx.chooseMessageFile问题)
  • Linux 常用命令最全总结大全【推荐收藏】
  • 安当ASP:中小企业低成本Radius认证服务器解决方案
  • C++核心编程之引用
  • python装饰器的详解使用
  • 深入理解 Java 接口的回调机制 【学术会议-2025年人工智能与计算智能(AICI 2025)】
  • qt5实现表盘的旋转效果,通过提升QLabel类
  • 深入解析:在Spring Boot中集成MyBatis Plus实现高效数据库操作
  • 欢乐力扣:同构字符串
  • antv G6绘制流程图
  • 网络运维学习笔记 019 HCIA-Datacom综合实验03
  • 谢晖不再担任中超长春亚泰队主教练:战绩不佳主动请辞
  • 央行:增加科技创新和技术改造再贷款额度3000亿元
  • 央行行长:债券市场“科技板”准备工作基本就绪,目前近百家市场机构计划发行超三千亿科技创新债
  • 李云泽:将加快出台与房地产发展新模式相适配的系列融资制度
  • 长三角铁路五一假期发送旅客超2000万人次,同比增幅超一成
  • 李公明 | 一周画记:生活就是抵抗