Соединение nginx отклонено при подключении к восходящему потоку

У меня есть сервер, на котором я развернул API (Sinatra). Я запускаю этот API на порт 9292 и запрашиваю к нему прокси.

Мне также нужно развернуть статический файл javascript и его вспомогательные ресурсы. Я делаю это на том же сервере.

Вся приведенная ниже информация анонимизирована.

Конечная точка доступа к API следующая:

server {
    listen 80;
    server_name api.myapp.com;

    location / {
            proxy_pass http://localhost:9292;
    }
}

, а конечная точка, с которой я обслуживаю JS:

server {
    listen 80;
    server_name xsa.myapp.com;

    location / {
            root /data/mydir/xsa;
    }
}

" localhost: 3003 «сервер, который вы видите в приведенной ниже ошибке, это то место, откуда я имею в виду JS.

2018/11/23 23:31:27 [error] 18720#0: *32 connect() failed 
(111: Connection refused) while connecting to upstream, 
client: 255.255.255.7, server: api.myapp.com,
request: "GET /api/v1/sub/sub_ABCXYZ/info?token%3D56f51132-
406b-4e06-a600-7379876446ed HTTP/1.1", upstream:
"http://[::1]:9292/api/v1/sub/sub_ABCXYZ/info?token%3D56f51132
-406b-4e06-a600-7379876446ed", host: "api.myapp.com",
 referrer: "http://xsa.myapp.com/src/selector.html?
mfid=sub_ABCXYZ&location=http://localhost:3003/"

Итак, напомним:

  • Sinatra API на виртуальной машине« x »с портом 9292
  • сервер nginx на виртуальной машине» x "обслуживает прокси-сервер на порту 80 для API для запросов, поступающих на" api.myapp.com "
  • тот же сервер nginx, также обслуживает файл javascript на порту 80 для запросов, поступающих на" xsa.myapp.com " "

Я прекрасно могу просматривать JS в браузере, так что он действительно обслуживается. Ошибка заключается в динамическом материале, который он делает при создании экземпляра.

Я также вижу, что сервер Sinatra на 9292 действительно получает запрос и возвращает 200. Похоже, что проблема уже после этого. Так что даже не похоже, что в восходящем соединении действительно отказано. Я дважды проверил, что этот ответ в точности совпадает с ответом, когда JS обслуживается локально (и работает).

* ОБНОВЛЕНИЕ *

Ошибка «соединение отклонено» на самом деле происходит, даже когда JS обслуживается локально и работает правильно, поэтому похоже, что эта ошибка - отвлекающий маневр. Подобно

ADS -> 62.xx.xx.210

Server joined ADS 

Team foundation server --> 62.xx.xx.211

SQL Server --> 62.xx.xx.212

Exchange server --> 62.xx.xx.213

Web Server --> 62.xx.xx.214

Web Server --> 62.xx.xx.215

And some other servers / windows 8.1 

Мой активный каталог в настоящее время подвергается атаке с усилением DNS, и поставщик сервера посоветовал принять меры, иначе службы будут остановлены им. Я пробовал работать на UDP-порту 389, но как только я заблокирую порт 389, сервер обмена перестает работать. Моя главная цель - справиться с атакой с усилением DNS, и я прочитал и понял, что вначале сделал неправильно, создав общедоступный активный каталог. Сейчас я работаю над перемещением активного каталога с общедоступного IP-адреса на частный IP-адрес. Для этого я добавил новый интерфейс на каждый сервер, создал частную сеть для всех, и каждая машина также может пинговать другую по частному IP. (Добавлены маршруты) Теперь у меня есть

ADS -> 62.xx.xx.210, 10.28.62.210

Server joined on Public IP and have Private IPs

Team foundation server --> 62.xx.xx.211, 10.28.62.211

SQL Server --> 62.xx.xx.212, 10.28.62.212

Exchange server --> 62.xx.xx.213, 10.28.62.212

Web Server --> 62.xx.xx.214, 10.28.62.214

Web Server --> 62.xx.xx.215, 10.28.62.215

. Как я могу заставить его работать, переместив все серверы в частный домен, а также на общедоступные IP-адреса. Но активный каталог остается только частным. Это означает, что я отключаю общедоступный интерфейс активного каталога или изменяю DNS для прослушивания только на частном интерфейсе, но на всех других серверах, доступных на общедоступных IP-адресах, но аутентифицируемых из частного ADS. Никаких советов, что делать.

Спасибо

1
задан 24 November 2018 в 11:32
1 ответ

Следующее не отвечает на вопрос «как перейти на частные IP-адреса». Вероятно, на этот вопрос нельзя ответить на форуме вопросов и ответов. Но вы можете предпринять краткосрочные меры, чтобы ваш бизнес продолжал работать:

Дополнительный внешний IP-адрес

  • Получите дополнительный, новый внешний IP-адрес от вашего интернет-провайдера.
  • Отделите вашу сеть 62.xx.xx.xx от физической сети Интернет.
  • установите брандмауэр с NAT (например, pfsense ) для доступа в Интернет

Если вы не можете получить дополнительный внешний IP

Ваша сеть 62.xx.xx.xx кажется быть большим. (/ 26?). Возможно, вы можете разделить его на две более мелкие подсети. В первой подсети вы сохраняете свои внутренние серверы и IP-адрес шлюза и отделяете их от физической интернет-сети. Из второй подсети вы выбираете IP в качестве внешнего IP и устанавливаете брандмауэр NAT, как упомянуто выше.

В качестве долгосрочной стратегии вам нужно подумать о брандмауэрах и DMZ.

Надеюсь, это поможет, удачи!

0
ответ дан 4 December 2019 в 03:29

Теги

Похожие вопросы