我正在尝试将Mojolicious用作反向代理。我的Nginx配置看起来像这样:
upstream printo {
server 127.0.0.1:3000;
}
[..]
location /print {
proxy_pass http://printo;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
我想在请求到达Mojolicious应用之前剥离URL的/printo
部分-否则,所有请求都有一个/printo/something
URL,结果为404。
我见过this,但我想尽可能在Nginx中做。
我尝试过这样重写:
rewrite ^/print/(.+)$ $1;
没有结果。
那是怎么做的?
答案 0 :(得分:0)
要在URI上游传递时修改URI,可以使用rewrite...break
或使用proxy_pass
指令本身执行类似的功能。
例如:
location /print {
rewrite ^/print(/.*)$ $1 break;
proxy_pass http://printo;
...
}
请记住,在重写的URI中保持前导/
。有关详情,请参见this document。
或者:
location /print/ {
proxy_pass http://printo/;
...
}
location
值应带有尾随/
,以确保正确进行文本替换。有关详细信息,请参见this document。