Curl с проблемой получения данных после перезапуска Nginx - PullRequest
0 голосов
/ 04 июля 2019

Мой сервер работал нормально, пока я не перезапустил сервер, и теперь моя программа с cURL API перестает работать.После длительного устранения неисправностей я выяснил, в чем проблема.

Когда я использую эту команду:

curl -i https://server.my-site.com/checkConnection

Nginx возвращает ошибку:

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 04 Jul 2019 17:14:40 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 0
Connection: keep-alive
Location: /checkConnection/

ноесли я использую эту команду:

curl -i -L https://server.my-site.com/checkConnection

Затем сервер вернет:

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 04 Jul 2019 17:14:40 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 0
Connection: keep-alive
Location: /checkConnection/

HTTP/1.1 200 OK
Server: nginx
Date: Thu, 04 Jul 2019 17:14:40 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 2
Connection: keep-alive
X-Frame-Options: SAMEORIGIN

ok

А если я использую браузер, то все работает.Я понятия не имею, из-за чего возникает ошибка.и как это исправить.

Любая помощь приветствуется!

Ответы [ 3 ]

1 голос
/ 05 июля 2019

Это то, что происходит, когда путь отображается в каталог. Теоретически, URL-адрес, такой как http://example.org/directory, может отображаться в каталог, такой как /wherever/public_html/directory, и, будучи каталогом, отображать index.html или подобный файл оттуда; однако это может вызвать неожиданные проблемы, когда вы будете ссылаться на другие вещи, такие как изображения в том же каталоге. <img src="picture.jpg"> будет загружать http://example.org/picture.jpg, а не http://example.org/directory/picture.jpg, поскольку это относительно URL-адреса, который просматривает браузер. Из-за этого HTTP-серверы обычно выдают редирект для добавления косой черты в конце, который затем загружает правильную страницу и по URL-адресу, где относительные пути делают то, что ожидают люди.

Добавление -L к командной строке curl заставляет его следовать перенаправлению, как это делают браузеры, и вы получаете ожидаемый результат. Без -L curl является более наивным http-клиентом и позволяет вам делать с информацией все, что вы пожелаете.

0 голосов
/ 06 июля 2019

Хорошо.Я наконец исправляю это, добавляя внутреннюю маршрутизацию в uwsgi.Теперь все работает нормально.

0 голосов
/ 05 июля 2019

Может быть, у вас есть правило для www.server.my-site.com, и именно поэтому он возвращает 301, потому что он перенаправляет с server.my-site.com на www сайт, может быть, вы должны поделиться своей конфигурацией, чтобы проверить его

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...