amWiki 转接到任意域名进行接口测试
我们分两种情况进行文档转接,一种是我们有域名服务器操作权限,一种是没有
有域名服务器操作权限的转接
如果我们有域名服务器操作权限,那要把其他域名下的文档转接到当前域名下,其实很简单,就是一个 反向代理 的过程
以 nginx 为例,将地址 https://amwiki.xf09.net/docs/ 下所有文档转接到任意域名(无需https) /wiki 路径下
server {
listen 81;
server_name abc123.com;
location /wiki {
proxy_pass https://amwiki.xf09.net/docs/;
proxy_redirect off;
#proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
# other settings ...
}
无域名服务器操作权限
此时,如果想要将我们的文档转接到对应域名上去,需要利用抓包工具 Fiddler 进行 请求代理
(请下载安装抓包工具 Fiddler,并了解 AutoResponder 面板的使用)
由于 https 特殊性,我们分两种情况来讨论:
http 请求代理
当原域名基于 http 通信时,由于 http 请求是一种很开放的通信,我们可以直接用 fiddler 非常简单的进行转接
比如,我们继续把地址 https://amwiki.xf09.net/docs/ 下所有文档转接到任意域名 /wiki 路径下
只需要如下配置 AutoResponder:
规则代码如下:
regex:.+abc123\.com\/wiki\/(.+)$
https://amwiki.xf09.net/docs/$1
第一行代码为请求匹配,其中 regex:
表示按正则表达式进行匹配,.+abc123\.com\/wiki\/
表示需要代理的路径,(.+)$
(和第二行配合)表示转接后续的路径,即将后续路径替换到第二行代码中的 $1
| | 转接地址 | 实际请求地址 | | : ---| :--- | :--- | | 例1 | http://abc123.com/wiki/index.html | https://amwiki.xf09.net/docs/index.html | | 例2 | http://abc123.com/wiki/amWiki/js/amWiki.js | https://amwiki.xf09.net/docs/amWiki/js/amWiki.js |
https 请求代理
当原域名基于 https 通讯是,我们需要更多的操作才能使用代理 (Fiddler 抓包 https 的原理,有兴趣可自行知乎一下)
- 第一步,开启 https 解码
Tools -> Fiddler Options -> HTTPS -> 依次勾选如下
- 第二步,是安装 Fiddler 根证书
打开 http://localhost:8888/ 下载Fiddler 根证书并安装
第三步,按照 http 的方式进行代理
例如,我们转接到百度域名的一个路径下regex:.+www\.baidu\.com\/wiki\/(.+)$ https://amwiki.xf09.net/docs/$1
此时,我们打开 https://www.baidu.com/wiki/index.html 会发现,不再是“很抱歉,您要访问的页面不存在!”了