Я пытаюсь использовать prerender с сервисом amazon ecs, который использует определение задачи (nginx + app).Здесь nginx работает как сторонняя машина и действует как прокси перед приложением.Я пытаюсь использовать службу prerender для некоторых ботов.
Я пытался добавить 8.8.8.8 в контейнер resolv.conf и на хост-машине (ec2) resolv.conf, но он не работает.
ec2 resolv.conf
; generated by /sbin/dhclient-script
search ap-south-1.compute.internal
options timeout:2 attempts:5
nameserver 10.0.0.2
nameserver 8.8.8.8
контейнер resolv.conf
search ap-south-1.compute.internal
nameserver 8.8.8.8
options timeout:2 attempts:5
nginx conf
location / {
resolver 8.8.8.8 ipv6=off;
if ($http_user_agent ~* "googlebot") {
set $prerender 1;
}
if ($prerender = 1) {
#setting prerender as a variable forces DNS resolution since nginx caches IPs and doesnt play well with load balancing
set $prerender "service.prerender.io";
rewrite .* $host$request_uri? break;
proxy_pass http://$prerender;
}
...
}
task-definition.json
[
{
"name" : "${container_name}-nginx",
"hostname" : "${container_name}-nginx",
"dnsServers": ["8.8.8.8","8.8.4.4","1.1.1.1"],
"image" : "${nginx_proxy_image}",
"cpu" : 128,
"memory" : 192,
"links" : [
"${container_name}"
],
"portMappings" : [
{
"protocol" : "tcp",
"containerPort" : ${container_port},
"hostPort" : 0
}
],
"essential" : true
},
{
"name": "${container_name}",
"image": "${image_url}",
"essential": true,
"portMappings": [
{
"containerPort": 3000,
"hostPort": 0
}
],
"hostname": "${name}",
"memory": 4092,
"cpu": 512
}
]
Ошибка: 1. Я не могу выкопать URL-адрес службы prerender с хост-машины или контейнера ec2./ # dig @ 8.8.8.8 service.prerender.io
; <<>> DiG 9.12.3 <<>> @8.8.8.8 service.prerender.io
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached
После настройки google DNS в определении задачи.Я не могу получить доступ к Интернету из контейнера.
Я получаю ошибку 5xx при выполнении запроса curl к службе.
curl --header "User-Agent: googlebot"https://example.com
Какой идеальный способ для этого?