gpt4 book ai didi

hosts - 如何强制 Apache Bench 使用/etc/hosts 中指定的 IP 地址?

转载 作者:行者123 更新时间:2023-12-04 10:37:18 36 4
gpt4 key购买 nike

我正在使用 ApacheBench 进行一些负载测试。我希望 ab 使用我 Mac 上/etc/hosts 中指定的 IP 地址解析主机名。我怎么能强制它? curl 有一个 --resolve 选项可以做到这一点,正如指定的 here .我正在为 ab 寻找类似的东西。

最佳答案

反过来想一想:你可以告诉 Curl 命中一个 IP 地址,并指定 Host header 来触发所需的域。

curl example.com
curl --header "Host: example.com" 93.184.216.34

相同的方法适用于 ab使用 -H标志,因此
ab -n 10 -c 10 http://example.com/
ab -n 10 -c 10 -H "Host: example.com" http://93.184.216.34/

希望这可以帮助。

编辑:

背负@Magistar 的答案,您要确保使用正确的协议(protocol)( httphttps )并达到正确的 FQD。也就是说,如果你的网站响应 www.example.com但不是 example.com (没有 www )一定要使用有效的。

要注意的另一件事是确保您没有对重定向进行负载测试。例如,运行 ab反对 yahoo.com (我不建议这样做)不会是一个好的测试,因为 yahoo.com立即重定向到 www.yahoo.com如果您 curl 可以看到它处于详细模式:
# curl yahoo.com
redirect
# curl yahoo.com -v
* About to connect() to yahoo.com port 80 (#0)
* Trying 98.139.180.180...
* Connected to yahoo.com (98.139.180.180) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: yahoo.com
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Date: Wed, 07 Mar 2018 13:46:53 GMT
< Connection: keep-alive
< Via: http/1.1 media-router-fp29.prod.media.bf1.yahoo.com (ApacheTrafficServer [c s f ])
< Server: ATS
< Cache-Control: no-store, no-cache
< Content-Type: text/html
< Content-Language: en
< X-Frame-Options: SAMEORIGIN
< Strict-Transport-Security: max-age=2592000
< Location: https://www.yahoo.com/
< Content-Length: 8
<
* Connection #0 to host yahoo.com left intact
redirect

或者更具体地说,因为这是关于将主机欺骗到目标 IP 地址:
# curl --header "Host: yahoo.com" 98.139.180.180 -v
* About to connect() to 98.139.180.180 port 80 (#0)
* Trying 98.139.180.180...
* Connected to 98.139.180.180 (98.139.180.180) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Accept: */*
> Host: yahoo.com
>
< HTTP/1.1 301 Moved Permanently
< Date: Wed, 07 Mar 2018 13:51:26 GMT
< Connection: keep-alive
< Via: http/1.1 media-router-fp82.prod.media.bf1.yahoo.com (ApacheTrafficServer [c s f ])
< Server: ATS
< Cache-Control: no-store, no-cache
< Content-Type: text/html
< Content-Language: en
< X-Frame-Options: SAMEORIGIN
< Strict-Transport-Security: max-age=2592000
< Location: https://www.yahoo.com/
< Content-Length: 8
<
* Connection #0 to host 98.139.180.180 left intact
redirect

所以一定要 curl首先是 url,以确保它返回您期望的数据,然后继续 ab .

关于hosts - 如何强制 Apache Bench 使用/etc/hosts 中指定的 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882679/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com