Приложение Nginx + React с роутером + Chrome = подпапки не работают - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть приложение реагирования, работающее под nginx.Приложение работает нормально и проблем нет.

Теперь у меня на одном сервере запущены kibana и portainer, и я настроил nginx для их запуска в качестве подпапки.На сервере есть сертификат безопасности, и я не могу создать новые субдомены.Поэтому мне пришлось пойти с подпапками.

server {
listen       80;
listen       443 ssl;
server_name  api.nec.private.systems;

ssl_certificate     /etc/ssl/api.nec.private.systems.crt;
ssl_certificate_key /etc/ssl/api.nec.private.systems.key;
ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         HIGH:!aNULL:!MD5;

root /usr/share/nginx/html;

location / {
    # Set path
    try_files $uri /index.html;
}

# Do not cache sw.js, required for offline-first updates.
location /sw.js {
    add_header Cache-Control "no-cache";
    proxy_cache_bypass $http_pragma;
    proxy_cache_revalidate on;
    expires off;
    access_log off;
}


location /control/ {
    proxy_pass http://portainer:9000/;
    add_header Cache-Control "no-cache";
    proxy_cache_bypass $http_pragma;
    proxy_cache_revalidate on;
    expires off;
    access_log off;
}
    location /kibana/ {
    proxy_pass http://kibana:5601/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    # proxy_cache_bypass $http_upgrade;
    add_header Cache-Control "no-cache";
    proxy_cache_bypass $http_pragma;
    proxy_cache_revalidate on;
    expires off;
    access_log off;
}
}

Как вы можете видеть, первые две локации описывают приложение реагирования, а последние две - о кибане и поратинере.

Теперь здесьпроблема:

1) Я бы открыл Google Chrome и зашел на api.nec.private.systems/control - он без проблем запустил бы Portainer.2) Я бы открыл api.nec.private.systems/kibana и получил бы кибану, как и ожидалось.3) Я бы открыл api.nec.private.systems/, и откроется приложение реагирования с маршрутизатором реагирования.4) Теперь, выполнив шаг № 3, я открою api.nec.private.systems/kibana, и он больше не будет открывать кибану, скорее, он попытается передать / kibana в моем маршрутизаторе.Это не будет открывать кибану вообще.Независимо от того, сколько я бы попробовал.

x) Шаг номер X - очистить кэш Google Chrome и попробуйте снова - kibana и poirtainer работают просто отлично.Пока я не открою приложение «Реакция».

Есть идеи?

...