qd-today / qd

QD [v20240210] —— HTTP请求定时任务自动执行框架 base on HAR Editor and Tornado Server
https://qd-today.github.io/qd/
MIT License
4.22k stars 547 forks source link

[Feature] nginx反代-次级目录配置以访问静态文件 #359

Open moondigi opened 1 year ago

moondigi commented 1 year ago

Verify steps

Describe the Feature

当我用nginx反代qiandao到次级目录的时候,因为js和css等资源地址为根目录导致需要写多条nginx规则

Describe the solution

想以http://域名/qiandao,来访问使用 以下为nginx反代规则,希望项目的资源都是相对目录方便反代,或者增加config.py的次级目录设置 location /qiandao/ { proxy_pass http://127.0.0.1:8923/; }

Describe alternatives

No response

Additional context

No response

leic4u commented 1 year ago

+1,之前试过这样反代没成功,暂时只能以三级域名的方式反代了。

a76yyyy commented 1 year ago

@moondigi @leic4u 现在可以通过设置环境变量 STATIC_URL_PREFIX 或者修改配置文件来设置静态文件路径前缀了

请通过更新至Dev版或者更新最新源码, 以使用相关功能, 如有问题请及时反馈

PS: 跨版本更新或更新源码 请务必备份数据库

xq330 commented 1 year ago

设置STATIC_URL_PREFIX后还是无法实现二级反代 目前STATIC_URL_PREFIX设置为/qdstatic/ ngnix配置如下

location ^~/qd/ {
        proxy_pass http://127.0.0.1:8923;
        proxy_http_version 1.1;
        proxy_read_timeout 300;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        rewrite "^/qd/(.*)$" /$1 break;
}
location ^~/qdstatic/ {
        proxy_pass http://127.0.0.1:8923;
        proxy_http_version 1.1;
        proxy_read_timeout 300;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
}

123

例如首页: https://qiandao.com/qd/ 页面所有的请求地址还是https://qiandao.com/xxx,例如登录页地址为https://qiandao.com/login,必须为https://qiandao.com/qd/login才能正常显示。config.py 没有配置api次级目录的地方。目前还是没法实现二级反代。

moondigi commented 9 months ago

之前没有验证更改就关闭问题了,今天重新尝试用子目录部署的时候发现正如楼上所说,不少页面的url并没有应用STATIC_URL_PREFIX设置的目录

最终实现的效果应该是,整个项目的根应该为设置的子目录,当设置了子目录为/qd/的时候,首页应为http://ip:8923/qd/,登陆页面应为http://ip:8923/qd/login,如此类推