我在我的服务器上有一个服务API,可以通过213.209.253.6:7209访问。 我需要通过3rd(Aruba)托管的服务器上的网站(php)和我的内部网络通过c ++程序联系API。
网站仍处于开发阶段,因此在本地主机上运行xampp并通过外部ip或内部网络ip请求API,可以正常工作,并且c ++代码也没有问题。通过浏览器和curl控制台的请求曾经有效;
该网站与第3方服务器上的域一起运行。对于混合内容(https中的网站和http中的API)的请求失败是非常合理的。为了解决这个问题,我修改了服务器API的httpd.conf文件,加载了ssl_moudle,配置了证书.key,.crt和ca-bundle并在7210上侦听安全请求。
API响应良好(安全连接和不安全连接):浏览器,curl控制台,实时网站的javascript(ajax)代码,网站的php和javascript代码**(仅来自本地主机)** API无法通过curl php代码和本地网络中运行的程序中的curl c ++代码响应实时生产网站;
对于php “不响应”表示直到连接自身自行关闭或超时关闭该请求之前,该请求一直未得到响应,没有任何数据交换来自curl_getinfo()或curl_error()的其他信息(也在VERBOSE模式下)。 API服务器上没有apache日志。 对于C ++ 同样在这里,“不响应”表示直到连接关闭之前请求一直未得到响应,但是apache使用以下命令记录该请求:
(access_log)
192.168.1.113 - - [06/Apr/2019:11:40:33 +0200] "GET HTTP://192.168.1.130:7209/ HTTP/1.1" 400 226
(错误日志)
[Sat Apr 06 11:01:23.937408 2019] [core:debug] [pid 12567:tid 3000998720] vhost.c(1169): [client 192.168.1.113:59008] AH02417: Replacing host header '192.168.1.130:7209' with host '192.168.1.130:7209' given in the request uri
[Sat Apr 06 11:01:23.937915 2019] [authz_core:debug] [pid 12567:tid 3000998720] mod_authz_core.c(820): [client 192.168.1.113:59008] AH01626: authorization result of Require all granted: granted
[Sat Apr 06 11:01:23.937936 2019] [authz_core:debug] [pid 12567:tid 3000998720] mod_authz_core.c(820): [client 192.168.1.113:59008] AH01626: authorization result of <RequireAny>: granted
[Sat Apr 06 11:01:44.196715 2019] [reqtimeout:info] [pid 12567:tid 3000998720] [client 192.168.1.113:59008] AH01382: Request body read timeout
两天以来我一直在为此苦苦挣扎...
这里只有c ++的代码,而php代码的语法几乎相同,但结果相同...
if (curl) {
string st_url = "";
const char *url= st_url.c_str();
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POST, 1L);
string st_postfields = "mystuff";
const char *postfields= st_postfields.c_str();
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postfields);
//curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);
//curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, false);
//curl_easy_setopt(curl, CURLOPT_PORT, 7209);
//curl_easy_setopt(curl, CURLOPT_PROXY, "192.168.1.130:7209");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
res = curl_easy_perform(curl);
我评论了我在网上发现的内容,但没有结果。
我认为真正的问题在于服务器API的修改配置,因此我不使用ssl_module进行回滚,而我的httpd.conf文件是:
Listen 7209
ServerName 127.0.0.1:7209
DocumentRoot "/usr/local/apache2/htdocs"
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
结果从情况3更改为情况4
答案 0 :(得分:0)