Http префиксы Nginx в вышестоящем сервере

12

Я пытаюсь использовать nginx для передачи прокси в два контейнера докеров. Вот мой верхний файл conf:

upstream api_servers {
  server http://192.168.49.4:49155;
  server http://192.168.49.4:49156;
}

Вот что я пытаюсь загрузить:

nginx: [emerg] invalid host in upstream "http://192.168.49.4:49155" in /etc/nginx/conf.d/api_upstream.conf:3
nginx: configuration file /etc/nginx/nginx.conf test failed

Как только я удалил префиксы http: //, ошибка перестала происходить. Это почему?

user2108258
источник

Ответы:

16

Восходящий блок представляет собой список серверов с необязательным пулом состояния и ограничениями соединения. Протокол, используемый для присоединения к этим серверам, должен быть указан в proxy_passдирективе.

upstream api_servers {
    server 192.168.49.4:49155;
    server 192.168.49.4:49156;
}

server {

    [ ... ]

    location /foo/ {
        proxy_pass http://api_servers/;
    }

}
Ксавье Лукас
источник
2

Синтаксис: адрес сервера [параметры]; адрес может быть указан как имя домена или IP-адрес, с дополнительным портом или как путь к сокету UNIX-домена, указанный после префикса «unix:». Я думаю, что вы хотели бы посмотреть на " http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream ".

xiaopihai
источник