Maison  >  Questions et réponses  >  le corps du texte

Exploitation et maintenance - Proxy inverse Nginx Tomcat

Il existe deux applications jsp, les adresses d'accès locales sont les suivantes

http://127.0.0.1:8080/app1
http://127.0.0.1:8080/app2

L'accès à http://domain.com/app1 et http://domain.com/app2 peut être obtenu via la configuration suivante

server {
    listen    80;
    server_name    domain.com;
    charset    utf-8;
    location /{
        proxy_pass http://127.0.0.1:8080/;
        proxy_redirect  off;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Maintenant, je souhaite utiliser deux noms de domaine pour accéder à ces deux applications
Visitez http://127.0.0.1:8080/app1 via http://app1.domain.com
Accès via http://app2.domain.com http ://127.0.0.1:8080/app2
La configuration est la suivante

server {
    listen    80;
    server_name  app1.domain.com;
    charset utf-8;
    location /{
        proxy_pass http://127.0.0.1:8080/app1;
        proxy_redirect  off;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen    80;
    server_name  app2.domain.com;
    charset utf-8;
    location /{
        proxy_pass http://127.0.0.1:8080/app2;
        proxy_redirect  off;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Les résultats ne peuvent afficher que la page d'accueil et les ressources statiques ne peuvent pas être chargées

#我感觉应该这么写可是有语法错误
if ($uri ^/$){proxy_pass http://127.0.0.1:8080/app1;}
if ($uri ^/app1){proxy_pass http://127.0.0.1:8080/$request_uri;}

Alors, comment doit-il être configuré ?

仅有的幸福仅有的幸福2713 Il y a quelques jours453

répondre à tous(4)je répondrai

  • 迷茫

    迷茫2017-05-16 17:15:23

    Que signifie Impossible de charger ? C'est 502 ? Ou le chemin statique dans jsp est-il erroné ?

    répondre
    0
  • 迷茫

    迷茫2017-05-16 17:15:23

    En fait, vous pouvez simplement vous baser sur ce qui précède. . Dans ce cas, le transfert pseudo-statique basé sur le nom de domaine de deuxième niveau conviendra. . Je n'écrirai pas les détails. Le principe est comme ça. Il faut plusieurs essais pour déterminer la méthode d'écriture.

    L'idée générale est de transférer tous les .domain.com/ vers http://127.0.0.1:8080/$1/$2

    répondre
    0
  • 阿神

    阿神2017-05-16 17:15:23

    Merci pour l'invitation !
    Je pense qu'il est nécessaire de séparer dynamique et statique, et de laisser les js, css et images être traités par ngixn au lieu de Tomcat. La requête jsp est transmise à Tomcat pour traitement.

    
    location ~ .*\.(jpg|js|css)$ 
    { 
    root /home/www/image/;
    }

    répondre
    0
  • 世界只因有你

    世界只因有你2017-05-16 17:15:23

    Cher. . . Si votre racine n'est pas écrite, comment nginx peut-il vous fournir le fichier proxy ? C'est bien à l'étage.

    répondre
    0
  • Annulerrépondre