React+nginx+бэкэнд. Работает через NAT. Почему не работает через nginx?

Предыстория: Разработчики передали со скандалом код. Бэкэнд - Spring. Фронт -React ts. Прокси-nginx. Бд - postgresql. Все в одной сети. 172.17.100.102 - БД. 172.17.100.100 - nginx, бэк, docker с react. 172.17.100.103 - video На боевом сервере (my_site.ru) работает такая архитектура. На резервный клонирую эти машины. Регистрирую домен (my_site.site). Получаю сертификаты LetsEncript. Правлю конфиг nginx. Собираю контейнер с react. В итоге часть функционала не работает. Хотя если в react прописать порт 8080 и пробросить его до бэка, то весь функционал работает.

конфиг nginx

server {
    if ($host = www.my_site.site) {
        return 301 https://$host$request_uri;
    } # managed by Certbot
    if ($host = cdn.my_site.site) {
        return 301 https://$host$request_uri;
    } # managed by Certbot
    if ($host = my_site.site) {
        return 301 https://$host$request_uri;
    } # managed by Certbo   
    listen     80;
    server_name my_site.site cdn.my_site.site www.my_site.site ;
     access_log  off;
    location / {
        return 301 https://$server_name$request_uri;
    }
}
server {
    listen          443;
    server_name     my_site.site www.my_site.site;

    access_log /var/log/nginx/my_site_access.log;
    error_log /var/log/nginx/my_site_error.log;
     
    include /etc/nginx/include/ssl_my_site.conf;

    client_max_body_size 2G;

    # kostyl
    location ~ ^/videos/(.*)$ {
        proxy_pass          http://172.17.100.103:8081/videos/$1$is_args$args;
        proxy_set_header    X-Forwarded-Host $host;
        proxy_set_header    X-Forwarded-Server $host;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_connect_timeout 600;
    }
     
    location ~ ^/api/(.*)$ {
        proxy_pass          http://172.17.100.100:8080/$1$is_args$args; 
        proxy_set_header    X-Forwarded-Host $host;
        proxy_set_header    X-Forwarded-Server $host;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_connect_timeout 600;
        client_max_body_size 1G;
    }

    # Optional optimisation - please refer to http://nginx.org/en/docs/http/configuring_https_servers.html
    # ssl_session_cache   shared:SSL:10m;
    location / {
        proxy_pass          http://172.17.100.100:8180/;
        proxy_set_header    X-Forwarded-Host $host;
        proxy_set_header    X-Forwarded-Server $host;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Real-IP $remote_addr;
       port_in_redirect   off;
        proxy_redirect      http://172.17.100.100:8180/ /;
        proxy_connect_timeout 600;
    }
    ssl_certificate /etc/letsencrypt/live/my_site.site-0001/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/my_site.site-0001/privkey.pem; # managed by Certbot
}
server {
    listen          443;
    server_name     cdn.my_site.site;

    access_log /var/log/nginx/cdn_my_site_access.log;
    error_log /var/log/nginx/cdn_my_site_error.log;
     
    include /etc/nginx/include/ssl_my_site.conf;

    client_max_body_size 2G;
     
    location ~ ^/videos/(.*)$ {
        proxy_pass          http://172.17.100.103:8081/videos/$1$is_args$args;
        proxy_set_header    X-Forwarded-Host $host;
        proxy_set_header    X-Forwarded-Server $host;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_connect_timeout 600;
    }

    ssl_certificate /etc/letsencrypt/live/my_site.site-0001/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/my_site.site-0001/privkey.pem; # managed by Certbot
}

Прописано в React :

axios.create({
    baseURL: 'https://my_site.site';
});

Docker :

docker run --rm -d -p 8180:80/tcp 89c2a002c613

При работе через nginx приходится явно указывать

location /login {
proxy_pass 172.17.100.100:8080;

и

location /logout {
proxy_pass 172.17.100.100:8080;

И в трех компонентах возникают ошибки:

bundle.084be85bbd3867ea5dde.js:2 TypeError: n.map is not a function.

Остальные 10 работают нормально.

Хотя бэк все данные отдает. Как такое может быть? Понимаю, что что-то упустил, но не понимаю где.


Ответы (0 шт):