У меня есть приложение 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