网站根目录反向代理后,特定子目录避免反代的方法 作者: bluish 时间: 2024-12-24 分类: 折腾 ##实际情形 域名/站点根目录反向代理至部分运行于特定端口的程序,而其他子目录需保留默认80/433端口访问。 如web.py为运行于8080端口的FastAPI应用,提供index.html及相关API,为根目录展示页面。 而页面中套用的js、css文件单独存放于80端口的./resource文件夹中,需要避免此文件夹被web.py的8080端口反代。 ##解决方法 在nginx文件中,除`location /{}`外,额外添加`location ^~ /resource/ {}`,括号内无需添加任何内容。示例: ``` # 优先匹配子目录,阻止其被代理 location ^~ /resource/ { # 无需配置,使用默认80/443端口处理 } location ^~ /ts3-banner/ { include enable-php-74.conf; #启用PHP } # 根目录反向代理配置 location / { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # 其他必要的proxy配置... } ``` ##错误尝试 尝试将/resource文件夹单独反向代理至`http://127.0.0.1/resource`,会出现错误: ``` 400 Bad Request Request Header Or Cookie Too Largenginx. ``` 网站根目录反向代理后,特定子目录避免反代的方法 http://bluish.net/archives/2133/ 作者 bluish 发布时间 2024-12-24 许可协议 CC BY-SA 4.0 复制版权信息 标签: 服务器, 宝塔, nginx