Nginx правила перезаписи местоположения не работают за ELB - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть 2 экземпляра ec2 за балансировщиком нагрузки приложения, который перенаправляет трафик c к нужному экземпляру в соответствии с путем:

  • www.example.com/hello => экземпляр 1
  • www.example.com/goodbye => экземпляр 2

Nginx конфигурация серверов

# Hello server config
server {
    listen       80;
    server_name  localhost;

    location / {
        root  /home/ubuntu/welcome;
    }

    location = /hello {
        root  /home/ubuntu/api;
    }
# Goodbye server config
server {
    listen       80;
    server_name  localhost;

    location / {
        root  /home/ubuntu/welcome;
    }

    location = /goodbye {
        root  /home/ubuntu/api;
    }

Я создал простой файл индекса. html на каждом сервере под Папка root, как указано в файлах конфигурации, так что instance1 возвращает «Hello», а instance2 возвращает «Goodbye». Однако www.example.com/hello и www.example.com/goodbye всегда возвращают 404 не найденными. Я перезагрузил свой Nginx сервис и даже перезапустил.

PS: Ради тестирования я создал еще один экземпляр с Nginx, не спрятанным за ELB, и отредактировал конфигурацию так, чтобы она выглядела аналогично, и похоже, что работать, поэтому я не уверен, что я сделал не так с теми, кто стоит за ELB.

1 Ответ

0 голосов
/ 04 февраля 2020

Удалось решить эту проблему, переместив root за пределы скобок местоположения и обновив имя моих папок, чтобы оно соответствовало названию местоположения, и это работает. так что теперь это выглядит так / прощай /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...