Просто обратный прокси nginx с localhost: 80 на localhost: 8080 не работает - PullRequest
0 голосов
/ 09 июля 2019

я впервые изучаю обратный прокси с nginx, и следующее не работает для меня я пытаюсь перенаправить запросы от http://localhost на сервер API, который у меня работает на http://localhost:8080

server {
    listen 80;
    location / {
        proxy_pass http://localhost:8080;
    }
}

когда я нажимаю http://localhost,, мне просто показывают приветствие на заставке nginx. если я нажму http://localhost:8080, я увижу мой API

У меня есть служба экспресс-узла, работающая по адресу: 8080, которую я могу запустить вручную, но разве http://localhost тоже не может быть там прокси?

Ответы [ 2 ]

1 голос
/ 09 июля 2019

Когда я настраиваю домен nginx, который перенаправляет запросы на сервер узла, это выглядит так: для server_name вы можете использовать localhost в качестве параметра для доступа к нему через localhost. Вы также можете передать default_server, чтобы сделать это конфигурацией сервера по умолчанию.

Примечание: Только одна активная конфигурация может содержать default_server, иначе Nginx выдаст ошибки.

Примечание: При использовании default_server Nginx перехватит localhost в конфигурации этого сервера. В противном случае вам нужно указать localhost в списке server_name (разделенных пробелом).

server {
  # Setup the domain name(s)
  server_name example.com;
  listen 80 default_server;

  # If you would like to gzip your stuff
  gzip on;
  gzip_min_length 1;
  gzip_types *;

  # Setup the proxy
  # This will forward all requests to the server
  # and then it will relay the servers response back to the client
  location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_cache_bypass $http_upgrade;
  }
}
0 голосов
/ 09 июля 2019

Обнаружено, что добавление этого в мой nginx.conf решает проблему:

listen [::]:80;

По какой-то причине listen 80; не перехватывает мои http://localhost запросы.

...