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配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章