二级目录代理如何配置

sparks

问题描述

如题,我使用一个webman项目做挂到一个网站的二级目录上,如
location /pay {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://unix:/opt/pay/pay.sock;
}
这里之后,使用test.com/pay/c/a 之后,直接404,请问有没有什么方式来达到这种效果,

942 2 1
2个回答

owenzhang

https://my.oschina.net/owenzhang24/blog/5585429
你看看 可不可以帮到你

  • 暂无评论
juns

已经搞定了吗?是怎么配置的?我配置完后,js,css这些文件访问不到,还有plugin/public下的文件也访问不到

  • 君子如玉 2024-11-07

    我也是碰到了这个问题

  • juns 2024-11-07

    目前在nginx里做了两个匹配

    location /v2/ {
        rewrite ^/v2/(.*)$ /app/v2/$1 break;
        proxy_pass http://webman_erp;
    }
    location /app/ {
        rewrite ^/(.*)$ /$1 break;
        proxy_pass http://webman_erp;
    }
  • 君子如玉 2024-11-08

    你好,这个app是一级目录,v2是你的二级目录吗?我现在是直接部署在example.com/webman 这种二级目录下,webman-admin的静态资源访问,只会自动拼接上域名,不带后面这个webman目录,导致资源访问不到

  • juns 2024-11-08

    对,我之前也是这个问题。上面配置的/app/是webman里很多静态资源开头的路径。/v2相当于你的/webman。

  • rbb 2024-11-08

    静态资源访问不到,一般是nginx的root没有指向到webman/public这个目录

  • 君子如玉 2024-11-08

    感谢,用了你的这种方式重写url规则,已经可以访问了,不过这种还挺麻烦,webman-admin自带的app/admin/controller可以直接指到二级目录,但是单独新增管理功能,目录是admin/controller这种,还要单独再写一遍规则。感觉最好的情况是请求的时候域名能自动带上二级目录,目前我不知道在哪里修改这种配置参数能拼接上二级目录,目前系统发送的的请求是example.com/app/admin/index,实际上我想要发送的是example.com/webman/app/admin/index

  • juns 2024-11-13

    这种情况目前我的做法就是在webman模板里手动加上/webman/URL,前面那一段可以做个全局变量或环境配置就可以。这样原来webman的系统代码就不用改。

  • 君子如玉 2024-11-13

    我试着改了一下路径,能够通过修改模板这种方式实现,不过项目登录后跳转等各种请求还是只有域名,不带有域名+子目录形式,这样需要把所有的请求也都加上环境变量才能处理,工作量就大很多。现在只能先放弃子目录,采用了独立域名的方式实现

×
🔝