windows下nginx均衡tomcat接入阿里云的ssl证书以支持https

      现在项目都分拆成了几个或更多的微服务子系统,新老系统迭代时存在springmvc的模块,也存在springboot的模块,另考虑tomcat本身的压测并发上限在300-500,通过nginx来均衡,一个tomcat只跑一个应用,或是直接springboot的jar运行,通通由nginx监听80和443端口,再转发。这样即可以增强并发,各个子模块维护更新时重启也不会相互影响。

nginx和tomcat的安装和基本配置,本文不再赘述,重点来记录下nginx+tomcat接入阿里云的ssl证书,希望对大家有所帮助。

一、下载安装证书

申请阿里云证书过程省略,通过审核发布后,点击下载证书

这里选择Nginx/Tengine,点击下载。把下载到的证书0123456789.pem和0123456789.key复制到服务$nginx$/cert/目录下

二、修改转发规则

# 强制所有http访问都转为https访问
server {
    listen     80;
    server_name  mydomain.com;  #绑定的域名
    rewrite ^(.*)$  https://$host$1 permanent; 
}

server {
    listen 443;
    server_name mydomain.com; #绑定的域名
    ssl on;
    ssl_certificate   cert/0123456789.pem;
    ssl_certificate_key  cert/0123456789.key;
    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;
    
    location / {
      	proxy_pass http://localhost:8080;
        # 如果有websocket的 下面这几句后才能支持ws
      	proxy_http_version 1.1;
      	proxy_set_header Upgrade $http_upgrade;
      	proxy_set_header Connection "upgrade";
      	proxy_set_header Origin "";
    }
}

cmd->进入nginx目录,键入:nginx -s reload 执行重新加载配置

三、修改Tomcat的Service.xml

找到<Connector />配置

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

添加proxyPort="8443"

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" 
        redirectPort="8443" proxyPort="8443" />

在Host中添加RemoteIpValue

<Host name="mydomain.com"  appBase="webapps" unpackWARs="true" autoDeploy="true">

    <Valve className="org.apache.catalina.valves.RemoteIpValve"
            remoteIpHeader="x-forwarded-for"
            remoteIpProxiesHeader="x-forwarded-by"
            protocolHeader="x-forwarded-proto" />

</Host>

重启tomcat完成配置,到这里就完成https配置。

猜你喜欢

转载自blog.csdn.net/dylin83/article/details/82752604