Назад | Перейти на главную страницу

Nginx обрабатывает несколько htmls в разных местах на одном сервере

Я хочу развернуть свое приложение для реагирования на nginx на одном сервере, обслуживая разные html для разных мест, я пробовал конфигурацию ниже, но у меня это не сработало

    server {
  listen 8080;
  # root /usr/share/nginx/build-bms;

  # Add index.php to the list if you are using PHP


  server_name _;

  location ^~ /portal1/ {
    root PATH_TO_BUILD_FOLDER_ONE;
    try_files $uri /index.html;
    index invalid;
    add_header   Cache-Control public;
    expires      1d;
    autoindex on;
  }

      location ^~ /portal2/ {
    root PATH_TO_BUILD_FOLDER_TWO;
    try_files $uri /index.html;
    add_header   Cache-Control public;
    index invalid;
    expires      1d;
    break;
    autoindex on;
  }

  location / {
    root PATH_TO_BUILD_FOLDER_THREE;
    try_files $uri /index.html;
    add_header   Cache-Control public;
    expires      1d;
  }
}

Каждый раз подается только последний

Не будучи специалистом по nginx, я проверил свою конфигурацию и предложил удалить совпадение регулярного выражения (если оно вам не нужно) и преобразовать вашу конфигурацию в:

server {
  listen 8080;
  root /usr/share/nginx/build-bms;

  # Add index.php to the list if you are using PHP


  server_name _;

  location ^~ /portal1/ {
    alias /usr/share/nginx/portal1/;
    try_files $uri /index.html index.php;
    index invalid;
    add_header   Cache-Control public;
    expires      1d;
    autoindex on;
  }

  location ^~ /portal2/ {
    alias /usr/share/nginx/portal2/;
    try_files $uri /index.html index.php;
    add_header   Cache-Control public;
    index invalid;
    expires      1d;
    break;
    autoindex on;
  }
 location  / {
    alias /usr/share/nginx/portal3/;
    try_files $uri /index.html index.php;
    add_header   Cache-Control public;
    expires      1d;
  }
}

Вместо использования нескольких корней я бы использовал псевдоним. Но я бы всегда указывал корневой элемент для сервера, а затем работал бы с псевдонимами. Я бы оставил это на усмотрение профессионалов nginx.