Files
gangyan/scripts/tools-nginx.conf
liuguancen 5850d37c48 fix: 修复工具nginx反代路径冲突
- Stirling PDF: 使用 SERVER_SERVLET_CONTEXT_PATH=/pdf 从根本解决 base href 问题
- TrWebOCR: 用精确文件名 location 代替 sub_filter(后端 gzip 导致 sub_filter 不生效)
- Lama Cleaner: 同样用精确 location 匹配所有 API 路径(/model, /inpaint 等)
- PDF API 用 /api/v1/ 精确匹配,和 imgcompress 的 /api/ 不冲突
- OCR API 用 /api/tr-run/ 精确匹配

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 19:54:33 +08:00

148 lines
5.5 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

server {
listen 18000;
client_max_body_size 500M;
# ===== 1. Stirling PDF =====
# <base href="/"> 导致相对路径从根开始用sub_filter改成/pdf/
# context-path=/pdf所有PDF资源都在 /pdf/ 下,无冲突
location /pdf/ {
proxy_pass http://127.0.0.1:18080/pdf/;
proxy_set_header Host $host;
proxy_buffering off;
client_max_body_size 500M;
}
# ===== 2. Excalidraw =====
location /draw/ {
proxy_pass http://127.0.0.1:18081/;
proxy_set_header Host $host;
}
location /assets/ { proxy_pass http://127.0.0.1:18081/assets/; }
location /v1/ai/ {
proxy_pass http://127.0.0.1:18082/v1/ai/;
proxy_set_header Host $host;
proxy_read_timeout 60s;
proxy_buffering off;
}
# ===== 3. TrWebOCR =====
# 不用 sub_filter后端返回 gzip 无法改写),直接用精确文件名 location
location /ocr/ {
proxy_pass http://127.0.0.1:18083/;
proxy_set_header Host $host;
proxy_buffering off;
}
# OCR 的 JS/CSS精确文件名不会和 Overleaf 冲突)
location /js/app.7dd3e457.js { proxy_pass http://127.0.0.1:18083/js/app.7dd3e457.js; }
location /js/chunk-vendors.ae13d15d.js { proxy_pass http://127.0.0.1:18083/js/chunk-vendors.ae13d15d.js; }
location /css/app.77d50329.css { proxy_pass http://127.0.0.1:18083/css/app.77d50329.css; }
location /css/chunk-vendors.9d96bc97.css { proxy_pass http://127.0.0.1:18083/css/chunk-vendors.9d96bc97.css; }
# OCR 的 API
location /api/tr-run/ {
proxy_pass http://127.0.0.1:18083/api/tr-run/;
proxy_set_header Host $host;
proxy_buffering off;
client_max_body_size 50M;
}
location /tools/ocr_text/ {
proxy_pass http://127.0.0.1:18083/tools/ocr_text/;
proxy_set_header Host $host;
}
# ===== 4. LibreTranslate =====
location /translate/ {
proxy_pass http://127.0.0.1:18084/;
proxy_set_header Host $host;
}
location /static/ { proxy_pass http://127.0.0.1:18084/static/; }
location /languages { proxy_pass http://127.0.0.1:18084/languages; }
location /frontend/settings { proxy_pass http://127.0.0.1:18084/frontend/settings; }
location /detect { proxy_pass http://127.0.0.1:18084/detect; }
# ===== 5. PPTist =====
location /ppt/ {
proxy_pass http://127.0.0.1:18085/;
proxy_set_header Host $host;
proxy_buffering off;
}
location /pptapi/ {
proxy_pass http://127.0.0.1:18086/;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
proxy_cache off;
}
# ===== 6. imgcompress =====
location /imgcompress/ {
proxy_pass http://127.0.0.1:18087/;
proxy_set_header Host $host;
}
location /_next/ { proxy_pass http://127.0.0.1:18087/_next/; }
location /api/ {
proxy_pass http://127.0.0.1:18087/api/;
proxy_set_header Host $host;
proxy_buffering off;
client_max_body_size 500M;
}
# ===== 7. Lama Cleaner =====
# sub_filter 不生效(后端 gzip用精确 location 匹配所有 API 和静态资源
location /lama/ {
proxy_pass http://127.0.0.1:18088/;
proxy_set_header Host $host;
proxy_buffering off;
}
# Lama 静态资源(精确文件名)
location = /static/js/main.1bd455bc.js { proxy_pass http://127.0.0.1:18088/static/js/main.1bd455bc.js; }
location = /static/css/main.c28d98ca.css { proxy_pass http://127.0.0.1:18088/static/css/main.c28d98ca.css; }
# Lama API全部用精确路径
location = /inpaint {
proxy_pass http://127.0.0.1:18088/inpaint;
proxy_set_header Host $host;
proxy_buffering off;
proxy_read_timeout 300s;
client_max_body_size 500M;
}
location = /inputimage { proxy_pass http://127.0.0.1:18088/inputimage; proxy_set_header Host $host; proxy_buffering off; }
location = /model { proxy_pass http://127.0.0.1:18088/model; proxy_set_header Host $host; }
location = /is_desktop { proxy_pass http://127.0.0.1:18088/is_desktop; }
location = /is_disable_model_switch { proxy_pass http://127.0.0.1:18088/is_disable_model_switch; }
location = /is_enable_file_manager { proxy_pass http://127.0.0.1:18088/is_enable_file_manager; }
location = /interactive_seg { proxy_pass http://127.0.0.1:18088/interactive_seg; proxy_set_header Host $host; }
location = /save_image { proxy_pass http://127.0.0.1:18088/save_image; proxy_set_header Host $host; client_max_body_size 500M; }
# ===== 8. webp2jpg =====
location /webp2jpg/ {
proxy_pass http://127.0.0.1:18089/;
proxy_set_header Host $host;
}
location /cdn/ { proxy_pass http://127.0.0.1:18089/cdn/; }
# ===== 9. Overleaf =====
location /overleaf/ {
proxy_pass http://127.0.0.1:18090/;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
}
# ===== 10. LaTeX 公式编辑器 =====
location /latex/ {
proxy_pass http://127.0.0.1:18091/;
proxy_set_header Host $host;
}
# ===== 默认回落到 Overleaf =====
location / {
proxy_pass http://127.0.0.1:18090;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
}
}