2014-05-21 7 views
9

Recentemente ho iniziato ad usare NGINX, ho scoperto che possiamo usarlo per il reverse proxy, che serve da solo il contenuto statico che può ridurre il tempo di caricamento. Ho un server Tomcat/JBoss sul mio computer locale e voglio metterlo davanti a NGINX in modo che il contenuto statico venga servito da NGINX e il resto venga eseguito da Tomcat/JBoss. La mia applicazione Tomcat/JBoss è in esecuzione su http://localhost:8081/Test, la mia configurazione NGINX ha funzionato correttamente ma non è in grado di caricare il file css/js/jpg. Qui è la mia guerra strcuture wehere contenuti statici sonocome rendere NGINX disponibile per contenuti statici come .js, .css, .html?

Test.war

TEST 
    | 
    |--->Resources 
    |  |------->CSS 
    |  |   |----> style.css 
    |  | 
    |  |-------->Images 
    |     |----> a.jpg 
    |     |----> b.jpg 
    | 
    |--->WEB-INF 
    |  |----->Web.xml 
    |  |----->spring-servlet.xml 
    | 
    |--->JSP 
     |---->login.jsp 

Credo che il problema è a causa del percorso assoluto, quindi dovrei copiare la cartella risorse e mettere in qualche cartella in Nginx e configurare il mio NGINX per scegliere un file dalla propria directory piuttosto che andare su Tomcat/JBoss? Sono nuovo quindi non ho idea di farlo può qualcuno mi aiuti in questo. Questo è il mio file di configurazione per nginx (finestre)

server { 
     listen 80; 
     server_name localhost; 

     #charset koi8-r; 

     #access_log logs/host.access.log main; 

     location/{ 
      proxy_pass http://127.0.0.1:8081/Test/; 
     } 
+0

L'aggiunta di una posizione più specifica '/ Risorse /' che si punta al percorso assoluto dovrebbe funzionare. (devi indicarlo nella cartella di guerra esplosa) – Thilo

+0

quindi dovrei mettere una cartella Risorse nella directory del mio server NGINX? – Pulkit

+0

in realtà quello che sto pensando è di mettere tutto il mio contenuto statico nella directory del server NGINX e dovrebbero essere serviti da qui invece di caricarli da JBoss/Tomcat ma non so come configurare NGINX per caricare tutto questo contenuto statico dal proprio server directory – Pulkit

risposta

20

È possibile aggiungere posizione con regexp:

server { 
    listen 80; 
    server_name localhost; 

    location ~* \.(js|jpg|png|css)$ { 
     root path/to/tomcat/document/root/Test/; 
     expires 30d; 
    } 

    location/{ 
     proxy_pass http://127.0.0.1:8081/Test/; 
    } 
} 
+0

Come testarlo dopo averlo impostato? – ihue

+0

@ihue sudo service nginx restart – user2278120

+0

@ihue Provalo con 'sudo nginx -t' invece – kaiser

2

Prova

server { 
    listen 80; 
    server_name localhost; 

    location ~* \.(css|js|gif|jpe?g|png)$ { 
     expires 168h; 
    } 

    location/{ 
     proxy_pass http://127.0.0.1:8081/Test/; 
    } 
} 

Come provare

Nella tua corsa CLI ab -c 20 -n 1000 https://your-site/any-file

Si vedrà Tempo impiegato per le prove diminuiscono drasticamente.