web-dev-qa-db-fra.com

comment faire NGINX servir du contenu statique comme .js, .css, .html?

Récemment, j'ai commencé à utiliser NGINX, j'ai trouvé que nous pouvons l'utiliser pour le proxy inverse, servant du contenu statique à partir de lui-même, ce qui peut réduire le temps de chargement. J'ai un serveur Tomcat/JBoss sur ma machine locale et je veux mettre NGINX devant pour que le contenu statique soit servi à partir de NGINX et reposé par Tomcat/JBoss. Mon application Tomcat/JBoss s'exécute sur http://localhost:8081/Test ma configuration NGINX a fonctionné correctement mais elle n'est pas en mesure de charger css/js/jpg fichier. Voici ma structure de guerre où les contenus statiques sont

Test.war

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

Je pense que le problème est dû au chemin absolu, alors devrais-je copier le dossier des ressources et le mettre dans un dossier dans NGINX et configurer mon NGINX pour choisir un fichier dans son propre répertoire plutôt que sur Tomcat/JBoss? Je suis nouveau, donc je n'ai aucune idée de le faire. Quelqu'un peut-il m'aider? Ceci est mon fichier de conf pour NGINX (windows)

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/;
        }
15
Pulkit

Vous pouvez ajouter location avec 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/;
    }
}
31
ist

Essayez

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/;
    }
}

Comment tester

Dans votre exécution CLI ab -c 20 -n 1000 https://your-site/any-file

Vous verrez Temps nécessaire aux tests diminuer considérablement.

3
kyo