Рейтинг:0

Nginx не может загрузить css, js и png сервера tomcat

флаг ng

Я пытаюсь развернуть сервер tomcat и Nginx на одном экземпляре AWS EC2. У меня есть 3 экземпляра, и на каждом экземпляре я хотел развернуть сервер Nginx и Tomcat. Ниже мой файл конфигурации

/etc/nginx/nginx.conf

www-данные пользователя;
рабочие_процессы авто;
pid /run/nginx.pid;
включить /etc/nginx/modules-enabled/*.conf;

События {
        worker_connections 768;
        # multi_accept on;
}

http {

        ##
        # Основные настройки
        ##

        отправить файл включен;
        tcp_nopush включен;
        tcp_nodelay включен;
        keepalive_timeout 65;
        типы_хэш_макс_размер 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        включить /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # Настройки SSL
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Удаление SSLv3, ссылка: POODLE
        ssl_prefer_server_ciphers включен;

        ##
        # Настройки ведения журнала
        ##

        журнал_доступа /var/log/nginx/access.log;
        журнал_ошибок /var/log/nginx/error.log;

        ##
        # Настройки Gzip
        ##

        gzip включен;

        # gzip_vary on;
        # gzip_proxyed любой;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Конфигурации виртуального хоста
        ##

        включить /etc/nginx/conf.d/*.conf;
}"

/etc/nginx/conf.d/application.conf

сервер {
    слушать 80 default_server;
    слушать [::]:80 default_server;
    имя_сервера локальный хост;
    корень /var/lib/tomcat9/webapps/ROOT;
    индекс развертывания.html;
    местоположение/администратор {
                try_files $uri $uri//deploy.html;
        }
    расположение /admin/admin-portal {
        псевдоним /opt/tomcat/webapps/ROOT/;
        переписать /admin-portal/(.*) /$1 break;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        прокси_пароль http://localhost:8080/;
        }
    расположение ~ \.css {
           add_header Content-Type text/css;
        }
    расположение ~ \.js {
            add_header Content-Type application/x-javascript;
        }

Моя цель: когда я нажимаю http://IP/ или HTTP://IP/admin, он должен перенаправляться на deploy.html, а когда я нажимаю HTTP://IP/admin/admi-portal, он должен открывать сервер tomcat.

ПРИМЕЧАНИЕ. Я добился успеха в обоих случаях, за исключением того, что когда я нажимаю HTTP://IP/admin/admi-portal, он открывает только HTML-страницу и файлы CSS/png/js, получая 404: ошибка не найдена.

/opt/tomcat/webapps/ROOT/ это путь к файлу для всех статических файлов tomcat CSS/js/png и т. д.

Кто-нибудь может мне с этим помочь?

Рейтинг:0
флаг us

В этом случае запросы на файлы CSS/JS с /админ/портал/ префикс по-прежнему обслуживается местоположение ~ \.css блокируется из-за того, как работает алгоритм выбора местоположения nginx.

Если вы хотите предотвратить сопоставление регулярных выражений для всего, что имеет /админ/админ-портал префикс, то вам нужно использовать:

расположение ^~ /admin/admin-portal {
    ...
}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.