Как перенаправить все запросы обратного прокси только на домен, не включая местоположение позади - PullRequest
0 голосов
/ 01 февраля 2019

Я хочу разместить сайт angular / реагировать.После процесса сборки у меня в корневой папке есть index.html и другие файлы.Если я размещаю nginx один, без обратного прокси, он работает отлично.Каждый URL-адрес запроса, кроме моего домена, будет перенаправлен на index.html
Например: domain.com/test/this/code/test будет перенаправлен на index.html.Код наподобие этого:

server {
  listen 80;
  server_name domain.com;
  if ( $http_x_forwarded_proto != 'https' ) {
    return 301 https://$host$request_uri;
  }
  root /root/folder;
  index index.html;
  access_log /var/log/nginx/domain.com-access.log;
  error_log /var/log/nginx/domain.com.error.log;

  location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires max;
    log_not_found off;
  }

  location / {
    #try_files $uri /index.html;
    try_files $uri $uri/ /index.html =404;
  }
}

Но когда я помещаю свой сервер за обратный прокси-сервер, то же самое, что и выше, nginx перенаправляет только один уровень.
Пример:

  1. домен.com / justatest -> Это работает, потому что только одноуровневое расположение
  2. domain.com / just / a / test -> Не работает, я проверяю в Интернете и вижу файлы, которые выглядят в Интернете в / just / a/ Папка, так что это будет ошибка 404.
  3. domain.com / just / a / test / onemoretime -> Не работает, я проверяю в Интернете и вижу файлы в Интернете в папке / just / a / test /, так что это будет ошибка 404.

Это моя конфигурация обратного прокси:

upstream domain {
    server IP:8081;
    keepalive 8;
}

server {
    listen 80;
    server_name domain.com;
    access_log /var/log/nginx/domain-access.log;

    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";

      proxy_pass  http://domain/;
      proxy_redirect off;          
    }
}

Я предполагаю проблему в конфигурации обратного прокси.Но понятия не имею.Может кто-нибудь показать мне проблему и как ее исправить?Большое спасибо.

...