Если вы ранее мало работали с HTTP шлюзом и хотите развернуть его в своей компании или просто поиграться с ним, то поздравляем вас, вы пришли в правильное место! Этот учебник очень удобен для пользователя. Он направлен на помощь новичкам получить практический опыт без необходимости долгого поиска, вопросов и недоумений. Это было протестировано на среде MacOS. Если вы столкнетесь с какой-либо проблемой во время прохождения этого учебника, не стесняйтесь создать задачу или отправить мне электронное письмо на этот адрес brucewangno1@qq.com с темой "Проблемы с учебником шлюза".
ETCD — это распределённое хранилище ключей-значений, необходимое для хранения конфигураций шлюза. Вам потребуется работающий сервер ETCD или кластер таких серверов. Следуйте указаниям на этой странице.
Под директорией $GOPATH/src/github.com/fagongzi, выполните команду
git clone https://github.com/fagongzi/gateway.git
```### Сборка этого проекта
Убедитесь, что ваша версия Go составляет **1.10** или выше. В противном случае произойдет ошибка.
В корневой директории этого проекта находится файл **Makefile**, который отвечает за генерацию исполняемых файлов и статического веб-интерфейса. В подкорневой директории этого проекта выполните команду
```shell
make
для создания исполняемых файлов apiserver и proxy, находящихся в директории dist; выполните команду
make ui
для создания директории UI в dist, которая является веб-интерфейсом, требуемым для apiserver.## Размещение службы шлюза онлайн
Теперь у вас есть запущенный ETCD или кластер ETCD контейнеров Docker. Под директорией dist, выполните следующие две команды в двух разных вкладках терминала (рекомендовано использование iTerm):
sudo ./proxy --addr=127.0.0.1:80 --addr-rpc=127.0.0.1:9091 --addr-store=etcd://127.0.0.1:2379 --namespace=test
./apiserver --addr=127.0.0.1:9091 --addr-store=etcd://127.0.0.1:2379 --discovery --namespace=test -ui=ui/dist
для запуска proxy и apiserver.
В директории cmd/backend находится файл backend.go. Это поддельный сервис-backend, который предоставляет множество простых API, таких как возврат имени хоста, IP-адреса и порта сервера. Откройте три вкладки терминала и выполните следующие команды в каждой из этих трёх вкладках соответственно.
go run backend.go --addr=localhost:9000
go run backend.go --addr=localhost:9001
go run backend.go --addr=localhost:9002
Теперь у вас есть три сервера, предоставляющих одинаковый сервис и позднее сформирующие кластер за счёт конфигураций в веб-интерфейсе.
Существует два способа конфигурирования шлюза, который отвечает за такие вещи как переадресация трафика. Первый — через веб-интерфейс, второй — через GRPC.### Через веб-интерфейс Веб-интерфейс доступен по адресу http://localhost:9093/ui/index.html#/home. Пожалуйста, не пытайтесь получить доступ к http://localhost:9093. Вместо того чтобы открыть веб-интерфейс, вы получите
{"message":"Not Found"}
Новичковская ошибка. В будущем эта проблема может быть решена.#### Главная страница веб-интерфейса:
Конфигурация завершена.
Щелкните по ссылке, чтобы открыть страницу загрузки.
Не забудьте добавить поле Host в разделе Headers. В противном случае это не будет работать.
И вот вам результат:
Johns-MacBook-Pro.local
localhost:9002
Обратите внимание, что почти каждый раз при нажатии на Отправить адрес сервера меняется. Это происходит благодаря стратегии балансировки нагрузки "Округление до ближайшего".## Бонусный раунд
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )