Время ожидания соединения с прокси-сервером Nginx истекло до HHVM

#php #nginx #hhvm

#php #nginx #hhvm

Вопрос:

У меня очень странная проблема. Мои серверы подключаются к моему api через proxypass.

 server {
    listen   80;
    server_name  www.example.com;

    location / {
        root    /data/sites/www.example.com/public_html/;
        index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?rt=$uriamp;$args;
    }

    location /api {
        proxy_pass_header  Set-Cookie;

        proxy_pass_header  P3P;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Fowarded-Host $host;
        proxy_set_header   X-Real-IP $remote_addr;
        port_in_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_pass https://api.example.com/;
        proxy_connect_timeout 60;
    }

    location ~ .php$ {
        root    /data/sites/www.example.com/public_html/;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index  index.php;
        #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        fastcgi_param  ENV  production;
        fastcgi_param HTTPS off;
        fastcgi_read_timeout 300;
    }

}
  

Итак, URL www.example.com/api является ли прокси-сервер пропуском к api.example.com . Но время ожидания соединения всегда истекает. Теперь, если я перейду к api.example.com прямо в моем браузере это РАБОТАЕТ!

Итак, я сбит с толку. У кого-нибудь есть идеи, что может происходить?

Ответ №1:

Если api.example.com это DNS-имя, а не upstream метка, возможно, потребуется добавить оператор распознавания, чтобы предоставить nginx доступ к DNS.

 resolver 8.8.8.8;
proxy_pass https://api.example.com/;
  

Подробности см. В этом документе.