server {
listen 80;
server_name www.hehehe.com;
charset utf-8;
location /test {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
}
}
对于 http://hehehe.com/test/index 类似这样的请求
反向代理大带宽服务器到了 uwsgi, 是个 django 应用
然后我只想要把 /index 这部分的 url 反向代理过去,,而不是 /test/index
现在 /test/index 导致我的 django 的 url 路由匹配不上。
/ 做 uwsgi
/text/index 不做
遇到过类似的问题,处理方法是修改路由把 /test 部分吃掉
用正则 location
uwsgi_pass 127.0.0.1:3031/;
加斜杠试试
rewrite 阶段在 uwsgi_pass 之前么 如果是的话 可以用 set 命令修改 location 变量试试(我只是脑洞 没试过
location /test 里面加
rewrite /test(.*) $1 break;
rewrite 之后
www.hehehe.com/test/index
访问后,就会被指向 www.hehehe.com/index
0 0 ,这样子就是 404 页面。
不是吧,难道 rewrite 对 uwsgi_pass 不起作用。。
估计写 uwsgi_params 配置文件了, http://uwsgi-docs.readthedocs.io/en/latest/InternalRouting.html
django 里面把这条路由加上 /test/index
嗯。正解。
mount = /test=/data/workspace/mblog/mblog/wsgi.py
manage-script-name = true
uwsgi 的配置里,可以配。
嗯。已找到方案,就是不想改 django 的形态。。