2016-10-09 7 views
1

Hallo Ich versuche, ein Nginx als Reverse-Proxy zu einer Anwendung, die ich auf einem Tomcat-Server laufen zu arbeiten. wenn ich versuche, meine Anwendung für den Zugriff auf über http es funktioniert gut, aber wenn ich versuche, es https zugreifen über ich einen 502 Fehler bekommen meine nginx ConfigNginx https Reverse Proxy ein anderes 502

hier folgt Datei

user www-data; 
worker_processes 4; 
pid /run/nginx.pid; 

events { 
    worker_connections 768; 
    # multi_accept on; 
} 


http { 
    sendfile on; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_timeout 65; 
    types_hash_max_size 2048; 


    include /etc/nginx/mime.types; 
    default_type application/octet-stream; 


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


    gzip on; 
    gzip_disable "msie6"; 


    rewrite_log on; 

    server{ 
     ssl on; 
     listen 80; 
     listen 443 ssl; 
     server_name myapp.local; 

     ssl_certificate max.local.crt; 
     ssl_certificate_key server.key; 
     #ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; 
       #ssl_ciphers RC3:HIGH:!aNULL:!MD5; 
       #ssl_prefer_server_ciphers on; 
       ssl_session_timeout 5m; 
     keepalive_timeout 60; 



     error_log /var/log/nginx/hybris.log; 
     rewrite_log on; 

     set $my_port 9001; 
     set $my_protocol "http"; 

     if ($scheme = https){ 
      set $myport 9002; 
      set $my_protocol "https"; 
     } 


     location/{  
      if ($http_user_agent ~ "Chrome"){ 
       #just a proof of concept 
       return 301 http://$host/AE/en; 
      } 

      if ($http_user_agent ~ "Firefox"){ 
       #just a proof of concept 
       return 301 http://google.com/; 
      } 
     } 


     location /AE/en { 


      proxy_pass $scheme://10.0.2.2:$my_port; 
      proxy_set_header Host $host; 
     } 


     location ~(?:/..)?/_ui/(.*) { 
      proxy_pass http://10.0.2.2:9001/_ui/$1;  
      proxy_set_header Host $host; 
     } 



    } 

} 
+0

Können Sie sagen, was Fehlerprotokoll sagt ,? und warum tust du nicht nur https und http server_names? – Satys

Antwort

1

Bei der Verwendung von https Sie sind Ändern des Ports und auch Schema für die Verbindung mit dem Tomcat-Server - das macht keinen Sinn. Sie würden https nur für einen Backend-Server verwenden, wenn dieser sich in einem anderen Datencenter befindet und nicht in einem lokalen Netzwerk. Es sollte gut funktionieren, wenn Sie den $ my_port entfernen und my_protocol Definitionen $ und Ihre/AE ändern/en location Block

location /AE/en { 
    proxy_pass http://10.0.2.2:9001; 
    proxy_set_header Host $host; 
} 
-1

Ich glaube, Sie zwei Server-Abschnitte erstellen müssen. Eine für das Abhören von Port 80 und die andere für das Abhören von Port 453 für https.

Verwandte Themen