nginx - 如何配置 nginx 代理 x.example.com/a/xxx 到 a.example.com/xxx
问题描述
我的问题是:
如果我发送请求http://x.example.com/a/sth,这是我的 nginx 代理配置:
location ~ /([a-z0-9]+) { proxy_pass http://$1.example.com:8000/; }
但它不能代理到http://a.example.com/sth
我该如何配置?
解决方案
/a/
在向上游传递之前,您需要从 URI 中删除前缀。您可能可以在同一个正则表达式中执行此操作。
例如:
location ~ ^/([a-z0-9]+)/(.*)$ {
proxy_pass http://$1.example.com:8000/$2$is_args$args;
}
您可能需要指定一个解析器指令,以便nginx
可以解析$1.example.com
.
推荐阅读
- javascript - 如何使用 javascript 识别和格式化数字
- php - 强制 https 后 Codeigniter 仍然显示 index.php
- javascript - 嵌入标题中的小图像,Discord.js
- node.js - 来自 EJS 的事件处理
- windows - 如何从 QFile 或 QSaveFile 获取 Windows HANDLE 以用于 ReOpenFile?
- python - 从其他脚本导入函数
- clojure - 编译 Clojure 时获得更多有用的警告
- laravel - 在 laravel 中创建多个模型到 belongsToMany
- java - 如何为我的代码创建一个循环,以便它运行直到用户提供正确的输入?
- algorithm - 找到区间最大交点出现 2 次的点