Heim > Fragen und Antworten > Hauptteil
[Ursprüngliche Frage: iOS-API-Link hält Timeout aufrecht]
Ich bin API-Entwickler und beim Online-Testen der API gibt es keine Probleme.
Aber der Entwickler auf der IOS-Seite hat einen Fehler gemeldet, der besagt, dass die NSURLCONNECTION-Anfrage aufgrund einer Zeitüberschreitung keine Antwort erhalten konnte.
Und er kann eine Antwort erhalten, wenn er andere https-restAPIs anfordert.
Entschuldigung: Ist dieses Problem ein Serverproblem oder ein IOS-Entwicklerproblem?
[Zusätzliche Erklärung]
Ich habe noch einmal nachgesehen und festgestellt, dass Safari diese Website nicht öffnen konnte, Chrome jedoch schon.
Ich kann den Server anpingen, was ist der Grund?
[Zusätzliche Erklärung]
Neuestes entdecktes Problem:
Auf https://www.demo.com/index2.php kann nicht zugegriffen werden, aber auf https://www.demo.com/index2.html kann zugegriffen werden
Meine Serverkonfiguration ist LANMP, Nginx-Proxy für Apache
nginx-1.10.2
Apache2.4
Gibt es einen Konfigurationsfehler in Nginx? Ich habe viele Informationen überprüft, einige sagten, es sei durch http2 verursacht worden, andere sagten, es sei durch SSL verursacht worden.
[Ergänzung]
Ich habe sowohl Apache- als auch Nginx-Protokolle. Dies ist Teil des Protokolls der betreffenden Website
Apache: Alle Anfragen sind 200 (mit iPhone Safari)
nginx: Es sind auch 200
我想大声告诉你2017-05-31 10:36:34
[找了将近半天,最后终于解决了]
问题的原因:nginx中proxy的配置问题导致HTTP2请求无法正确拿到response。
这是nginx代理到apache的问题。nginx1.9+.x/apache2.4的代理都有这个问题。
解决办法就是配置 nginx proxy:
proxy_hide_header Upgrade;
这个问题在nginx上看到的讨论:https://trac.nginx.org/nginx/...
【"Upgrade" header should not be proxied over h2】
漂亮男人2017-05-31 10:36:34
不用把证书给iOS的 除非你的https是给钱验证那种,
另外如果其他端可以的话,一般不是服务端问题。
但是我觉得是你tomcat配置的有问题,