AWS 亚马逊服务器:cURL 错误无法解析主机
AWS Amazon Server : cURL error could not resolve host
我已经使用 无风扇 ubuntu 服务器 几个月了,我的 Laravel API Passport
被转移到不同的服务器,例如 Ubuntu
和发展 Windows
。
我的 api 当前版本在这些服务器上运行良好。直到我将 laravel 项目转移到我的 AWS Amazon server
并得到这样的错误
{
"message": "cURL error 6: Could not resolve host: api-a.mydomain.comoauth (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)",
"exception": "GuzzleHttp\Exception\ConnectException",
"file": "/var/www/html/api_tk_a/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php",
"line": 185,
"trace": [
{
....some line of multiple errors
}
]
}
我试图在我的 etc/hosts
文件中添加一些代码行
像这样
52.***.***.205 api-a.mydomain.com
52.***.***.205 api-b.mydomain.com
或
127.0.0.1 api-a.mydomain.com
127.0.0.1 api-b.mydomain.com
我的 inet addr:171.*.**.**
也试过放在我的 hosts
文件上,仍然出现同样的错误
我有 2 个不同的 api
这就是为什么有 a
和 b
但这些都不起作用。
谁能指出我出现此错误的原因。
有些帖子说这与 Guzzle
无关,但明确指出 IP
和 DNS
。但是我找不到解决这个问题的好方法。
更新
我的 .env
文件有这样的东西
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:1AEVUl5JHMzLkhxU7MDlDHtfZ6KB9UybjzUxLaYp9vg=
APP_DEBUG=true
APP_URL=http://localhost
我尝试将 APP_URL
设置为 https://api-a.mydomain.com
仍然无法正常工作..
API 代码 This code is working fine
$http = new Client;
$response = $http->post(url('oauth/token'), [
'form_params' => [
'grant_type' => 'password',
'client_id' => '2',
'client_secret' => '8mEsN0RZkljKZlbiJFfnNKahcbcOVkoQVG7C2Xwl',
'username' => $user->email,
'password' => $request->password,
'scope' => '',
],
]);
这是我的routes/api.php
use Illuminate\Http\Request;
Route::post('/login','Auth\Api\AuthController@login');
EC2
平
要在 EC2 实例中执行 ping 操作,您必须在安全组中为您的 IP 打开 ICMP 端口。同样对于 curl,请验证您是否为您的实例打开了端口 8080/80。
我找到了解决方案:
我用了$http->post('https://api-a.mydomain.com' . '/oauth/token', [
Laravel passport trying to get oauth/token. Guzzle keeps hanging, also on other Guzzle calls
我已经使用 无风扇 ubuntu 服务器 几个月了,我的 Laravel API Passport
被转移到不同的服务器,例如 Ubuntu
和发展 Windows
。
我的 api 当前版本在这些服务器上运行良好。直到我将 laravel 项目转移到我的 AWS Amazon server
并得到这样的错误
{
"message": "cURL error 6: Could not resolve host: api-a.mydomain.comoauth (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)",
"exception": "GuzzleHttp\Exception\ConnectException",
"file": "/var/www/html/api_tk_a/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php",
"line": 185,
"trace": [
{
....some line of multiple errors
}
]
}
我试图在我的 etc/hosts
文件中添加一些代码行
像这样
52.***.***.205 api-a.mydomain.com
52.***.***.205 api-b.mydomain.com
或
127.0.0.1 api-a.mydomain.com
127.0.0.1 api-b.mydomain.com
我的 inet addr:171.*.**.**
也试过放在我的 hosts
文件上,仍然出现同样的错误
我有 2 个不同的 api
这就是为什么有 a
和 b
但这些都不起作用。
谁能指出我出现此错误的原因。
有些帖子说这与 Guzzle
无关,但明确指出 IP
和 DNS
。但是我找不到解决这个问题的好方法。
更新
我的 .env
文件有这样的东西
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:1AEVUl5JHMzLkhxU7MDlDHtfZ6KB9UybjzUxLaYp9vg=
APP_DEBUG=true
APP_URL=http://localhost
我尝试将 APP_URL
设置为 https://api-a.mydomain.com
仍然无法正常工作..
API 代码 This code is working fine
$http = new Client;
$response = $http->post(url('oauth/token'), [
'form_params' => [
'grant_type' => 'password',
'client_id' => '2',
'client_secret' => '8mEsN0RZkljKZlbiJFfnNKahcbcOVkoQVG7C2Xwl',
'username' => $user->email,
'password' => $request->password,
'scope' => '',
],
]);
这是我的routes/api.php
use Illuminate\Http\Request;
Route::post('/login','Auth\Api\AuthController@login');
EC2
平
要在 EC2 实例中执行 ping 操作,您必须在安全组中为您的 IP 打开 ICMP 端口。同样对于 curl,请验证您是否为您的实例打开了端口 8080/80。
我找到了解决方案:
我用了$http->post('https://api-a.mydomain.com' . '/oauth/token', [
Laravel passport trying to get oauth/token. Guzzle keeps hanging, also on other Guzzle calls