Во-первых, я новичок в nginx. Я пытаюсь запустить предварительную визуализацию для нашего сайта, которая включает в себя перезапись и proxy_pass, но я не могу, хоть убей, понять, что мешает этому.
Эта конфигурация, которую я использую ниже, предназначена только для устранения неполадок, но она по-прежнему дает мне время ожидания подключения через 60 секунд. Я могу указать его на любой IP или хост, и он не сработает. Использование wget для получения страниц с любого IP-адреса или хоста позволяет легко получить страницы, например http://www.google.com, или сервер, на который я пытаюсь попасть, http://service.prerender.io, так что это как-то связано с тем, как nginx выполняет proxy_pass.
Внутренний адрес сервера - 10.3.3.91. Как ни странно, я могу указать proxy_pass на 10.3.3.92 (другой сервер nginx) и получить страницы.
Я в недоумении. Любая помощь будет принята с благодарностью.
worker_processes 4;
worker_rlimit_nofile 65000;
events {
worker_connections 2048;
}
http {
# Logging Settings
access_log /var/log/nginx/test1-access.log;
error_log /var/log/nginx/test1-error.log;
server {
listen 80;
# location / {
# try_files $uri $uri/ /index.php?$args;
# }
location / {
proxy_set_header X-Prerender-Token OUR_TOKEN;
#resolve using Google's DNS server to force DNS resolution and prevent caching of IPs
resolver 8.8.8.8;
set $prerender "service.prerender.io";
rewrite .* /$scheme://$host$request_uri? break;
proxy_pass http://$prerender;
break;
}
}
}
Пример того, что я вижу в журнале ошибок:
2016/08/26 10:03:12 [error] 3635#0: *249 upstream timed out (110: Connection timed out) while connecting to upstream, client: 10.103.11.151, server: , request: "GET /something.php HTTP/1.1", upstream: "http://54.225.208.171:80/http://10.3.3.91/something.php", host: "10.3.3.91"
Наша сетевая команда сделала исключение веб-прокси для нескольких разных доменов, например, purple.com для тестирования, я изменил proxy_pass на purple.com, и он работает. Насколько я могу судить, у proxy_pass возникла проблема с пониманием ответов нашего веб-прокси, тогда как таких команд CLI, как wget и curl, не было.