我从终端调用一次curl命令,从Shellscript调用一次 - 但结果不同:
#!/usr/bin/env bash
url="dev.test.ch"
http="http://"
test="192.168.178.107"
curl -H "'Host: $url'" "$http$test"
echo "'Host: $url'" "$http$test"
和
curl -H 'Host: dev.test.ch' http://192.168.178.107
一旦我获得NGINX Startpage(来自Shellscript)和一次正确的回复(来自我的应用程序的HTML页面)
有什么想法吗?
答案 0 :(得分:0)
愚蠢的我 -
curl -H 'Host: '$newline "$http$test"
支撑是问题。
答案 1 :(得分:0)
您可以将curl
与-v
选项一起使用,以查看将HTTP请求发送到服务器的确切内容。问题是,在您的脚本中curl
添加了'Host
标题。
使用此行curl -H "'Host: $url'" "$http$test"
发送
> GET http://192.168.178.107/ HTTP/1.1
> Host: 192.168.178.107
> User-Agent: curl/7.49.1
> Accept: */*
> 'Host: dev.test.ch'
如果您删除单个qoutes curl -v -H "Host: $url" "$http$test"
,它将发送正确的请求:
> GET http://192.168.178.107/ HTTP/1.1
> Host: dev.test.ch
> User-Agent: curl/7.49.1
> Accept: */*