我需要将以下 nginx 配置转换为 apache:
location /api {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://service.local:8989;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
上述规则只是将 /api 后面的部分 URL 代理到另一台服务器。我不知道如何在 apache 中实现它...据我所知,在 apache 中无法在位置内定义重写规则。
答案1
在阿帕奇你不需要重写,下面将“转发”一个请求example.com/api/login?user=name
到service.local:8989/login?user=name
ProxyPass /api http://service.local:8989/
ProxyPassReverse /api http://service.local:8989/
ProxyAddHeaders On
ProxyPreserveHost On # Typically not needed but keeps options the same as in question
功能与上面相同,但语法更类似于 nginx,是在 Location 指令中设置 ProxyPass 指令:
<Location /api>
ProxyPass http://service.local:8989/
ProxyPassReverse http://service.local:8989/
ProxyAddHeaders On
ProxyPreserveHost On
</Location>