recherche

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

java-ee - Problème Tomcat avec le proxy Nginx request.getRequestURI(); Comment faire en sorte qu'il n'inclue pas le nom du projet

Si nginxla configuration suivante

Je visite http://kaipizhe.com 这个时候 request.getRequestURI(); 这个值是 /kaipizhe/ 而不是 /
Je visite http://kaipizhe.com/all/ 这个时候 request.getRequestURI(); 这个值是 /kaipizhe/all/ 而不是 /all/

est request.getRequestURI(); 都会带上 /kaipizhe/ ,怎么让他直接是 /,

Est-ce moi ? nginx Il y a un problème de configuration, que dois-je faire ?

nginxlog_format  kaipizhe.com  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';

server
{
    listen       80;  
    server_name  kaipizhe.com;
    root  /usr/local/tomcat/webapps/kaipizhe;

    include none.conf;

    location / {
            proxy_pass http://localhost:8080/kaipizhe/;
            proxy_cookie_path /kaipizhe /;
            proxy_set_header   Host    $host;
            proxy_set_header   X-Real-IP   $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_redirect http://localhost:8080/kaipizhe/ http://kaipizhe.com/;
        }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

    location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

    access_log  /home/wwwlogs/kaipizhe.com.log  kaipizhe.com;
}

黄舟黄舟2752 Il y a quelques jours448

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

  • 阿神

    阿神2017-05-16 17:25:41

    Il est recommandé de modifier la configuration de Tomcat, de configurer un hôte virtuel pour votre projet et de définir le répertoire racine du projet sur /usr/local/tomcat/webapps/kaipizhe (ou le répertoire racine réel de votre projet), afin que vous n'avez pas besoin d'ajouter un / lors de l'accès au préfixe kaipizhe, naturellement le résultat obtenu par request.getRequestURI() est également ce que vous souhaitez.

    Si vous utilisez l'accès ci-dessus, pensez à modifier la configuration de nginx, ça devrait aller.

        location / {
                proxy_pass http://localhost:8080/;
                proxy_cookie_path / /;
                proxy_set_header   Host    $host;
                proxy_set_header   X-Real-IP   $remote_addr;
                proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_redirect http://localhost:8080/ http://kaipizhe.com/;
            }
    

    répondre
    0
  • 迷茫

    迷茫2017-05-16 17:25:41

    Vous pouvez également l'implémenter sans modifier la configuration de Tomcat, ajouter un hôte virtuel ou utiliser les règles de réécriture nginx ;

    server {
        listen       88;
        server_name  localhost;
    
        #charset koi8-r;
        #access_log  /var/log/nginx/log/host.access.log  main;
    
        location /SMSSupport/ {  #静态资源会自动request.getRequestURI()头
            proxy_pass        http://127.0.0.1:8080;
            proxy_set_header  Host $http_host;
            proxy_set_header  X-Real-IP        $remote_addr;
            proxy_http_version 1.1;
        }
    
        location / { #非静态请求,自动转发到对应tomcat项目下
            proxy_pass        http://127.0.0.1:8080/SMSSupport/;
            proxy_set_header  X-Forwarded-Host   $host;
            proxy_set_header  X-Forwarded-Server $host;
            proxy_set_header  X-Real-IP        $remote_addr;
            proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_http_version 1.1;
        }
    }

    répondre
    0
  • Annulerrépondre