Skip to main content
 首页 » 编程设计

regex之Nginx之在 uwsgi_pass 之前重写 request_uri

2025年02月15日20lhb25

我有一个 Nginx 虚拟主机,配置如下:

... 
location /one { 
  include uwsgi_params; 
  uwsgi_pass unix:///.../one.sock; 
} 
location /two { 
  include uwsgi_params; 
  uwsgi_pass unix:///.../two.sock 
} 
... 

这当然是一个简化的配置

当我请求时 /one/something我希望我的 Python 脚本收到 /somethingrequest_uri .

我正在使用 BottlePy,但希望由 Nginx 处理,而不是在我的 Python 代码中处理。

我可以做类似 uwsgi_param REQUEST_URI replace($request_uri, '^/one', '') 的事情吗? ?

编辑

这是来自我的 Python 代码的请求:

[pid: 30052|app: 0|req: 1/1] () {42 vars in 844 bytes} [Tue Aug 21 14:22:07 2012] GET/one/something => 在 4 毫秒内生成 0 个字节(HTTP/1.1 200) 85 个字节中的 2 个 header (核心 0 上的 0 个开关)

所以 Python 可以,但 uWSGI 不行。

如何解决?

请您参考如下方法:

location /one { 
  rewrite /one/(.+) /$1 break; 
  include uwsgi_params; 
  uwsgi_pass unix:///.../one.sock; 
}