nginx https反向代理tomcat

Posted DuoBa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx https反向代理tomcat相关的知识,希望对你有一定的参考价值。

Context体现在server.xml中的Host里的<Context>元素,它由Context接口定义。每个<Context>元素代表了运行在虚拟主机上的单个Web应用。

<Context>元素:


<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <Context docBase="/var/www/java/pen/pen.war" path="/pen" debug="0" reloadable="true"/> </Host>

 

1>path:即要建立的虚拟目录,,注意是/pen,它指定访问Web应用的URL入口,如http://localhost:8080/pen/****。

2>docBase:为实际目录在硬盘上的位置(应用程序的路径或者是WAR文件存放的路径)。
3>reloadable:如果这个属性设为true,Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改变,如果监视到有class文件被更新,服务器自动重新加载Web应用,这样我们可以在不重起tomcat的情况下改变应用程序。

一个Host元素中嵌套任意多的Context元素。每个Context的路径必须是惟一的,由path属性定义。另外,你必须定义一个path=“”的context,这个Context称为该虚拟主机的缺省web应用,用来处理那些不能匹配任何Context的Context路径的请求

二、修改好sever.xml后更改nginx

    upstream https_tomcat_web{
       server 127.0.0.1:8080 ;
     }
     server {
       listen       443 ssl;
       server_name  iot.iot.com;
       location /{
       proxy_pass http://localhost:8080;
       proxy_set_header Host    $host; 
       proxy_set_header X-Real-IP  $remote_addr; 
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }
       ssl_certificate       /usr/local/cert/1732985_iot.iot.com.pem;
       ssl_certificate_key   /usr/local/cert/1732985_iot.iot.com.key;

       # ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;

       ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
       ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
       ssl_prefer_server_ciphers on;

       root /var/www/java/pen;
       
      # passenger_enabled on;
       #rails_env production;
    }

修改后重启nginx 在浏览器https://iot.iot.com/pen/** 可以正常的请求

 







以上是关于nginx https反向代理tomcat的主要内容,如果未能解决你的问题,请参考以下文章

nginx https反向代理tomcat

Nginx+Tomcat反向代理利用certbot实现https

Nginx总结如何配置Nginx和Tomcat实现反向代理

nginx+tomcat遇到的https重定向到http问题

nginx+tomcat简单反向代理+nginx监控

Nginx反向代理报504超时错误