Невозможно использовать URL для навигации в реагировать через nginx - PullRequest
1 голос
/ 30 июня 2019

Я передаю свой статический файл, используя nginx (ответный интерфейс). Я использовал разные URL-адреса, такие как / login / user / home для каждой страницы.

Мой nginx не перенаправляет их в мой файл index.html.

Я внес некоторые изменения и теперь не могу получить свою главную страницу. Возвращает не может получить / .

Это мой файл nginx.conf. Я запускаю его на окнах. Мой index.html находится в папке сборки. Как мне заставить мой nginx использовать Router и Link в реактиве, чтобы я мог получить страницу, ссылаясь на ссылку или через панель навигации?

worker_processes  5;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;


    server {
        listen   80;
        server_name  ip;

        location / {
            root   /Users/username/projectfolder/build;    
            index  index.html index.htm;
            try_files $uri $uri/ index.html;
            proxy_pass http://ipaddress:portnumber;
            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;
         }
     }
 }

UPDATE:

Я попробовал следующую конфигурацию

server {
        listen some_port;
        server_name some_ip;
        root C:\\nginx-1.17.1\\build\\;
        index  index.html index.htm;
        location /test/ {   
            alias C:\\nginx-1.17.1\\build\\;
            index  index.html index.htm;
            try_files $uri \\index.html;
            #internal;

            #return index;
        }
        location = /index.html {
        # no try_files here
        return 502;
    }
        location / {  
            #root   C:\\Users\\DEV-a0a02yc\\insurance_automation\\build;
            try_files $uri $uri\ \index.html?$args;
            #try_files $uri/ index.html;
            proxy_pass http://some_ip:some_port;
            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;
        }
    }

В / test / url я получаю пустую страницу и ошибка перезаписи / внутреннего перенаправления:

2019/07/01 09:53:22 [error] 17820#18008: *1 rewrite or internal redirection cycle while internally redirecting to "/favicon.ico\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html\ \index.html"

Это моя сетевая вкладка: enter image description here

Как мне обслуживать мой файл index.html здесь для обработки перенаправления при вводе этого URL?

1 Ответ

1 голос
/ 30 июня 2019

Для чего нужны прокси-линии в вашей конфигурации?

Разве вы не должны обслуживать html-файлы или передавать прокси на другой адрес?

Я бы предложил попробовать удалить строки прокси из конфигурации.

Также на несвязанной ноте строка proxy_pass недействительна. Адрес сервера «ipaddress» очень протяженный (хотя и невозможен для DNS), а порт «номер порта» определенно недопустим.

Итак, минимально необходимая конфигурация следующая:

location / {
    root /folder/subfolder/build;
    try_files $uri /index.html;
}

root определяет местоположение вашей папки с активной сборкой, а try_files определяет, что nginx должен искать, если запрошенный файл существует, если нет, он обслуживает index.html.

...