Рейтинг:0

веб-приложение dotnet core не может получить доступ к удаленному SQL Server

флаг tm

У меня есть установка с основным веб-приложением dotnet. Он развернут на виртуальной машине Azure под управлением Ubuntu. Интернет обслуживается в nginx. Это конкретное веб-приложение обращается к ряду различных баз данных. Одно из этих подключений не работает, когда решение развернуто на виртуальной машине. Вот некоторые детали:

  • SQL Server работает не на стандартном порту 1433, а на 15333 — я не контролирую этот сервер, поэтому изменение порта не вариант.
  • На моем ноутбуке разработчика строка подключения к этому SQL Server работает — извлечение данных работает, как и ожидалось.
  • С виртуальной машины Azure Ubuntu я могу подключиться по telnet к SQL Server (telnet IP 15333). Я получаю ответ «Подключено к IP».
  • Соединения с другими базами данных (Oracle, другие базы данных SQL Server (работающие на 1433)) в приложении работают нормально.
  • Все базы данных (рабочая и нерабочая) находятся в том же сетевом домене, что и мой ноутбук разработчика.

Поэтому я немного запутался в том, в чем проблема. При подключении к проблемному SQL Server время ожидания подключения истекает через 30 секунд (по умолчанию). Можно было бы ожидать почти немедленного ответа, если бы все работало, как ожидалось.

Конфигурация nginx выглядит так:

www-данные пользователя;
рабочие_процессы авто;
pid /run/nginx.pid;
включить /etc/nginx/modules-enabled/*.conf;

События {
        worker_connections 768;
        # multi_accept on;
}

http {

        ##
        # Основные настройки
        ##

        отправить файл включен;

        включить /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # Настройки ведения журнала
        ##

        журнал_доступа /var/log/nginx/access.log;
        журнал_ошибок /var/log/nginx/error.log;

        ##
        # Конфигурации виртуального хоста
        ##

        включить /etc/nginx/conf.d/*.conf;

        сервер {
                слушать 80;

                место расположения / {
                        proxy_pass http://localhost:5000;
                        прокси_http_версия 1.1;
                        proxy_set_header Обновить $http_upgrade;
                        proxy_set_header Поддержание соединения;
                        proxy_set_header Хост $host;
                        proxy_cache_bypass $http_upgrade;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Proto $ схема;
                }
        }
}

Бег статус ufw дает мне:

К действию от
-- ------ ----
Nginx HTTP РАЗРЕШИТЬ ВСЕГДА
443/tcp РАЗРЕШИТЬ ВСЕГДА
80/tcp РАЗРЕШИТЬ Везде
20:21/tcp РАЗРЕШИТЬ ВСЕГДА
30000:31000/tcp РАЗРЕШИТЬ Везде
OpenSSH РАЗРЕШИТЬ ВСЕГДА
14431/tcp РАЗРЕШИТЬ Везде
14431 РАЗРЕШИТЬ ВСЕГДА
1433 РАЗРЕШИТЬ ВСЕГДА
Nginx HTTP (v6) РАЗРЕШИТЬ везде (v6)
443/tcp (v6) РАЗРЕШИТЬ везде (v6)
80/tcp (v6) РАЗРЕШИТЬ везде (v6)
20:21/tcp (v6) РАЗРЕШИТЬ везде (v6)
30000:31000/tcp (v6) РАЗРЕШИТЬ везде (v6)
OpenSSH (v6) РАЗРЕШИТЬ ВСЕГДА (v6)
14431/tcp (v6) РАЗРЕШИТЬ везде (v6)
14431 (v6) РАЗРЕШИТЬ везде (v6)
1433 (v6) РАЗРЕШИТЬ ВСЕГДА (v6)

В чем тут может быть дело? Любые подсказки о том, как диагностировать проблему, будут оценены.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.