Puncte:0

Nginx nu reușește să încarce css, js și png pe serverul Tomcat

drapel ng

Încerc să implementez serverul tomcat și Nginx pe o singură instanță AWS EC2. Am 3 instanțe și pe fiecare instanță am vrut să implementez serverul Nginx și Tomcat. Mai jos este fișierul meu de configurare

/etc/nginx/nginx.conf

utilizator www-date;
worker_proceses auto;
pid /run/nginx.pid;
includ /etc/nginx/modules-enabled/*.conf;

evenimente {
        conexiuni_muncitor 768;
        # multi_accept on;
}

http {

        ##
        # Setări de bază
        ##

        sendfile activat;
        tcp_nopush activat;
        tcp_nodelay activat;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        includ /etc/nginx/mime.types;
        aplicație de tip_default/octet-stream;

        ##
        # Setări SSL
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Eliminarea SSLv3, ref: POODLE
        ssl_prefer_server_ciphers activat;

        ##
        # Setări de înregistrare
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Setări Gzip
        ##

        gzip on;

        # gzip_vary on;
        # gzip_proxied orice;
        # 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;

        ##
        # Configurații gazdă virtuală
        ##

        includ /etc/nginx/conf.d/*.conf;
}"

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

Server {
    asculta 80 default_server;
    asculta [::]:80 default_server;
    nume_server gazdă locală;
    rădăcină /var/lib/tomcat9/webapps/ROOT;
    index deploy.html;
    locație /admin {
                try_files $uri $uri/ /deploy.html;
        }
    locație /admin/admin-portal {
        alias /opt/tomcat/webapps/ROOT/;
        rescrie /admin-portal/(.*) /$1 pauză;
        proxy_set_header X-Forwarded-Host $gazdă;
        proxy_set_header X-Real-IP $adresă_la distanță;
        proxy_set_header X-Forwarded-Server $gazdă;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8080/;
        }
    locație ~ \.css {
           add_header Content-Type text/css;
        }
    locație ~ \.js {
            add_header Content-Type application/x-javascript;
        }

Scopul meu este ca atunci când apes http://IP/ sau HTTP://IP/admin, atunci ar trebui să redirecționeze către deploy.html și când apăs pe HTTP://IP/admin/admi-portal ar trebui să deschidă serverul Tomcat

NOTĂ: Am avut succes în ambele condiții, cu excepția cazului în care am apăsat HTTP://IP/admin/admi-portal, atunci deschide doar pagina HTML și fișierele CSS/png/js care primesc eroare 404:nu găsit.

/opt/tomcat/webapps/ROOT/ aceasta este calea fișierului pentru toate fișierele static Tomcat CSS/js/png etc

Ma poate ajuta cineva cu asta?

Puncte:0
drapel us

În acest caz, solicitările de fișiere CSS/JS cu /admin/portal/ prefix sunt încă deservite de locație ~ \.css bloc, datorită modului în care funcționează algoritmul de selecție a locației nginx.

Dacă doriți să preveniți potrivirea regex pentru orice are /admin/admin-portal prefix, atunci trebuie să utilizați:

locație ^~ /admin/admin-portal {
    ...
}

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.