Разрешить NGINX отправлять запросы через http на другой порт - PullRequest
0 голосов
/ 06 октября 2019

У меня есть приложение React, работающее с NGINX, которое обрабатывает трафик на одном порту (www.domain.com - https ), и у меня также есть внутреннее приложение Spring Boot, которое работает на другом порту (www.domain.com:7080 - http ).

Теперь NGINX обслуживает 80, 443 порта и загружает мое приложение React. Мое приложение реагирования жестко запрограммировано для отправки запросов на сайт www.domain.com:7080, однако все запросы не выполняются. В консоли браузера я вижу следующую ошибку:

The page at 'https:// domain.com/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http:// domain.com:7080/auth/login'. This request has been blocked; the content must be served over HTTPS.

Моя конфигурация NGINX:

server {
    listen 443 ssl; # managed by Certbot

    root /var/www/ui;
    server_name www.domain.com domain.com;

    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; # managed by Certbot

    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    location / {
        index index.html;
    }
}

server {
    listen 80;

    if ($host = domain.com) {
        return 301 $host$request_uri;
    } # managed by Certbot

    server_name www.domain.com domain.com;

    return 301 https://$host$request_uri; # managed by Certbot

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Мое фоновое приложение обслуживается по протоколу http, и я хочу разрешитьfront-end, чтобы поговорить с back-end службой.

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

1 Ответ

1 голос
/ 06 октября 2019

создайте конечную точку API в вашем домене, т.е. www.domain.com/api и настройте nginx для передачи трафика из этой конечной точки в ваш бэкэнд с помощью директивы proxy_pass. У вас будет защищенное соединение с вашими пользователями, и вам не нужно будет что-либо менять на своем внутреннем сервере.

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